Podstawy PHP i MySQL
Temat 8 - Data i czas. Zmienne środowiskowe.
Powrót do spisu tematów


W tym rozdziale:

  1. Funkcja date();
  2. Funkcja mktime();
  3. Funkcja checkdate();
Skąd pobierane są czas i data?

W skryptach PHP bardzo często odwołamy się do daty i czasu. Ponieważ wykonanie skryptu odbywa się po stronie serwera, również data i czas, z którego skrypty skorzystają, zgodne będą z ustawieniami serwera.

Funkcja date();

Jest to podstawowa funkcja zwracająca datą lub czas (w zależności od podanych parametrów), np.

<?php
$data=date("Y-m-d");
echo"Wyświetlam dzisiejszą datą: $data";
?>

Efektem działania powyżsszego skryptu ędzie wyświetlenie daty w formacie rok-miesiąc-dzień.
Poniżej kilka parametrów funkcji date(); Wszystkie można łączyć, lub używać osobno.

d - dwucyfrowy dzień miesiąca, od 01 do 31
D - dzień tygodnia w postaci trzech liter (od angielskich nazw), np.: Fri
F - pewna nazwa (angielska) miesąca
h - godzina w formacie 12-godzinnym, tj. od 01 do 12
H - godzina w formacie 24-godzinnym, tj. od 00 do 23
g - godzina w formacie 12-godzinnym bez początkowych zer, tj. od 1 do 12
G - godzina w formacie 24-godzinnym bez początkowych zer, tj. od 0 do 23
i - minuty od 00 do 59
j - dzień miesiąca bez początkowych zer, tj. od 1 do 31
l - peżna (angielska) nazwa dnia tygodnia
L - zwraca 0 jeżeli rok przestępny, lub -1 jeżeli nie przestępny
m - miesiąc w postaci liczby dwucyfrowej, tj. od 01 do 12
n - miesiąc bez początkowych zer, tj. od 1 do 12
M - pierwsze trzy litery nazwy (angielskiej) miesiąca
s - sekundy od 00 do 59
t - liczba dni w miesiącu, tj. od 28 do 31
w - dzień tygodnia w postaci numerycznej, od 0 (niedziela) do 6 (sobota)
y - rok w postaci dwucyfrowej, na przykład 02
Y - rok w postaci czterocyfrowej
z - dzień w roku, od 0 do 365

W powyższym skrypcie została wykorzystana funkcja count();, która zwraca długość tablicy (liczbą indeksów) (nazwa tablicy podana zostaje jako argument tej funkcji).

Ćwiczenie 8_1 - Parametry funkcji date()

  1. Należy umieścić na swoim koncie WWW plik 08_01.php (do pobrania tutaj 08_01.zip).
  2. Należy uruchomić skrypt i obejrzeć efekt jego działania.
  3. Należy przeanalizować budowę skryptu porównując z objaśnieniami parametrów funkcji date().

Zadanie 9 - Wyświetlenie informacji o dacie i czasie zgodnie z własnym formatem

  1. Należy umieścić na swoim koncie WWW plik zadanie09.php
  2. Skrypt powinien wyświetlić aktualnić datę w nastupującym formacie:
    Dzisiaj jest poniedziałek, 12 styczeń 2007 (nazwy dni tygodnia i miesięcy powinny być wyświetlone w języku polskim).

Czas UNIX-owy, funkcja mktime();

Wszelkie obliczenia dotyczące czasu oparte są w PHP na tzw. czasie UNIX-a. Oznacza to, że czas liczony jest w sekundach od umownego terminu narodzin UNIX-a, czyli od 1 stycznia 1970 roku. Dlatego też operacje na datach wcześniejszych niż przytoczona nie są możliwe w PHP. Datą graniczną jest z kolei rok 2038.

Jeżeli nie podamy parametrów funkcji mktime(), zostanie wyświetlona liczba sekund od umownej daty do chwili obecnej.

Funkcja mktime() posiada następujące parametry:
mktime(godzina, minuta, sekunda, miesiac, dzień, rok);
Jak widać kolejność parametrów wymaga uwagi.
Jeżeli zostanie pominięty któryś z parametrów, PHP przyjmie aktualny czas.

Korzystając z funkcji mktime() możemy sprawdzić, ile czasu upłynęo pomiędzy okreśślonymi datami.

Sprawdzenie poprawności podanej daty

Funkcja checkdate(miesiąc,dzień,rok) sprawdza czy podana data jest prawidłowa.
Parametr rok może być zawarty w przedziale: 1 - 32767
Parametr miesiąc może być zawarty w przedziale: 1 - 12
Parametr dzieś może być zawarty w przedziale: 1 - 31
Funkcja zwróci False, jeżeli podana data będzie nieprawidłowa, np. 31 kwietnia (miesiąc kwiecień ma 30 dni). Funkcja ta sprawdza również poprawność wpisanych dat pod względem lat przestępnych.

Ćwiczenie 8_2 - obliczanie, ile dni upłynęło między podanymi datami

  1. Należy umieścić na swoim koncie WWW plik 08_02.php (do pobrania tutaj).
  2. Należy przeanalizować kod skryptu i komentarze w nim zawarte.
  3. W ćwiczeniu 8_2 została zastosowana funkcja sprawdzania poprawności formatu daty - należy sprawdzić działanie skryptu podając niewłaściwą datę oraz przeanalizować mechanizm sprawdzania.

Zadanie 10 - obliczanie czasu do lub od wybranego dnia

  1. Należy umieścić na swoim koncie WWW plik zadanie10.php
  2. Formularz powinien umożliwić wybór jednego z kilku znaczących dni roku (święta i inne o starej dacie).
  3. Skrypt powinien wyświetlić ile dni pozostało lub upłynęło w roku do/od zadanego dnia.
  4. Przykład działania skryptu znajduje się tutaj (wymagane połczenie z Internetem)

 

Do zapamiętania

  1. Przy korzystaniu z funkcji mktime() należy uważać na poprawną kolejność parametrów

 


Powrót do spisu tematów