PHP udostępnia kilka funkcji służących do zapisywania daty w
preferowanym formacie. Podstawowa to date.
Pierwszym jej argumentem jest ciąg tekstowy, który służy jako opis
formatu. Każda litera wstawiona do tego ciągu zostanie zamieniona
na pewien element daty. Na przykład litera 'Y' zostanie zamieniona
na rok w postaci czterocyfrowej. Pełną listę elementów formatu
można znaleźć w opisie funkcji
date().
Przykład 12.5. Przykład użycia funkcji date
// Zakładając, że dzisiaj jest 7 luty 2005, 22:31:44
$today = date("F j, Y, g:i a");
// February 7, 2005, 22:31 pm
$today = date("m.d.y");
// 07.02.05
$today = date("j, n, Y");
// 7, 2, 2005
$today = date("Ymd");
// 20050207
$today = date('h-i-s, j-m-y, it is w Day z ');
// 22-31-44, 7-02-05, 3128 3144 1 Monpm05 37
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');
// It is the 7th day.
$today = date("D M j G:i:s T Y");
// Mon Feb 7 22:31:44 CET 2005
$today = date('H:m:s \m \t\o\ \m\i\e\s\i\a\c');
// 22:02:44 m to miesiac
$today = date("H:i:s");
// 22:02:44
|
Jak widać, większość liter ma swoje znaczenie, więc nie ma
możliwości wstawienia zwykłego tekstu, oprócz zamieniania ich na
sekwencje escape.
Domyślnie wyświetlana jest odpowiednio sformatowana data i czas
bieżący. Można to zmienić podając opcjonalny, drugi parametr -
czas w formacie timestamp. Wtedy format będzie dotyczył właśnie
tego czasu.
Funkcja date wszelkie "tekstowe" wartości
zwraca w języku angielskim. Istnieje jednak inna funkcja,
strftime, która, podobnie jak funkcja
date, służy do formatowania daty, jednak
różni się trochę zachowaniem. Po pierwsze, elementy formatu (inne
niż w funkcji date) są nie pojedyńczymi
literami, ale zawsze poprzedzone są znakiem procenta, przez co
można wstawiać do formatu zwykły tekst. Druga ważna różnica to
uwzględnianie ustwień regionalnych systemu locale. Wystarczy
ustawić odpowiednie locale (dla języka polskiego -
pl_PL i strftime zacznie mówić po naszemu).
Przykład 12.6. Użycie funkcji strftime
<?php setlocale(LC_TIME, "pl_PL"); echo strftime("%A"); ?>
|
Powyższy program wyświetli:
poniedziałek