Powrót

Przetwarzanie czasu w PHP

1. Format zapisu czasu POSIX TIME

POSIX time (Unix time) jest to format reprezentacji czasu oparty na liczbie sekund od północy 01.01.1970 UTC

Zwracana liczba sekund jest typu signed int o pojemności 2.147.483.647 sekund. 32-bitowy Unix time przestanie być użytecznym 19 stycznia 2038 roku o godzinie 03:14:07 czasu UTC, ponieważ zmienna signed int się przepełni i nastąpi tzw. "Problem roku 2038".

2. Metody PHP oparte na POSIX TIME

                
            <?php
                
                //Pobranie liczby sekund od północy 01.01.1970 UTC
                
                echo time()."<br>";
                
                //Pobranie liczby sekund od północy 01.01.1970 UTC do zadanej daty
      
                echo mktime(6,10,30,11,3,2016)."<br>";
                //mktime(godzina, minuty, sekundy, miesiąc, dzień, rok)
      
                //Pobranie liczby milisekund od północy 01.01.1970 UTC
                echo microtime()."<br>";
					
		?>

                

               
        

3. Pobranie bieżącej daty i czasu z serwera

Z użyciem funkcji date() oraz z użyciem klasy (podejście obiektowe) Dokładny opis parametrów funcji date(): PHP Manual

                

			<?php
                        //Z funkcją date()
				
                        echo date("Y-m-d H:i:s"); //ROK-miesiąc-dzień Godzina:minuta:sekunda)
                        echo "<br>";
                        echo date("d.m.Y H:i:s");
                        echo "<br>";
                        echo date("d.D.m.M.Y");
                        echo "<br>";
                        echo date("w");//numer dnia tygodnia
                        echo "<br>";
                        echo date("n.F");// n-numer miesiąca bez zera wiodącego
                        echo "<br>";

                        //Podejście obiektowe z użyciem klasy

                        
                        $dataczas = new DateTime();
                        echo $dataczas ->format("Y-m-d H:i:s");
                        //format daty i czasu na serwerze MYSQL
                        
				
			?>
                

               
        

5. Przykładowe użycie metody date()

Wypisanie informacji o dniu tygodnia (nazwa) i daty z kalendarza (dzień, nazwa miesiąca, rok)

                

			<?php

                echo "Dzisiaj jest ";
                $dzien= date("w");

                //w - jest liczbą całkowitą z przedziału 0-6 reprezentującą 
                //kolejne dni tygodnia licząc od niedzieli
                
                switch($dzien){
                  case '0':
                  echo "niedziela";
                  break;
                  case '1':
                  echo "poniedziałek";
                  break;
                  case '2':
                  echo "wtorek";
                  break;		
                  case '3':
                  echo "środa";
                  break;  
                  case '4':
                  echo "czwartek";
                  break; 
                  case '5':
                  echo "piątek";
                  break;
                  case '6':
                  echo "sobota";
                  break;  
                }

                echo " ";
                echo date("j")." ";
                
                $miesiac = date("n");

                ////n - jest liczbą całkowitą z przedziału 1-12 reprezentującą 
                //kolejne miesiące
                
                if($miesiac=='1'){
                    echo "styczeń";
                }
                else if($miesiac=='2'){
                    echo "luty";
                }
                else if($miesiac=='3'){
                    echo "marzec";
                }
                else if($miesiac=='4'){
                    echo "kwiecień";
                }
                else if($miesiac=='5'){
                    echo "maj";
                }
                else if($miesiac=='6'){
                    echo "czerwiec";
                }
                else if($miesiac=='7'){
                    echo "lipiec";
                }
                else if($miesiac=='8'){
                    echo "sierpień";
                }
                else if($miesiac=='9'){
                    echo "wrzesień";
                }
                else if($miesiac=='10'){
                    echo "październik";
                }
                else if($miesiac=='11'){
                    echo "listopad";
                }
                else if($miesiac=='12'){
                    echo "grudzień";
                }
                echo " ";
                echo date("Y").",";
				              
			?>
                
     
        

6. Przykładowe użycie metody date() i mktime()

                

		<?php

            $jutro  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));

            $miniony_mies = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));

            $nastepny_rok  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1); 

            echo "$jutro , $miniony_mies, $nastepny_rok";

		?>
                
     
        
Pliki do pobrania:

Cały skrypt php: czas_w_php.zip