Funkcje daty i czasu
PHP Manual

date

(PHP 4, PHP 5)

dateFormatuje lokalny czas/datę

Opis

string date ( string $format [, int $znacznik_czasu ] )

Zwraca datę sformatowaną zgodnie z szablonem podanym w argumencie jako znacznik_czasu, lub aktualnego czasu w przypadku wywołania jej bez tego argumentu. Innymi słowy, znacznik_czasu jest parametrem opcjonalnym, domyślnie pobierającym wartość funkcji time().

Parametry

format

Format zwracanej daty string. Zobacz możliwe ustawienia formatowania poniżej.

Poniższych znaków używa się jako tekstu w parametrze format
Zawartość parametruformat Opis Przykład zwróconej wartości
Dzień --- ---
d Dzień miesiąca, 2 cyfry z wiodącymi zerami 01 do 31
D Tekstowy opis angielskiej nazwy dnia, trzy litery Mon kończąc na Sun
j Dzień miesiąca bez zer wiodących 1 do 31
l (mała litera 'L') Pełen angielski opis dnia tygodnia Sunday aż do Saturday
N Liczbowa forma dnia tygodnia, zgodna z normą ISO-8601 (dodana w PHP 5.1.0) 1 (dla Poniedziałku) aż do 7 (dla Niedzieli)
S Angielski przyrostek porządkowy dla dnia miesiąca, 2 litery st, nd, rd lub th. Dobrze wygląda w połączeniu z j
w Liczbowa forma dnia tygodnia 0 (dla Niedzieli) aż do 6 (dla Soboty)
z Dzień roku (Zaczynając od 0) 0 aż do 365
Week --- ---
W Numer tygodnia w roku, zgodny z normą ISO-8601, Tygodnie rozpoczynają Poniedziałki (dostępne od PHP 4.1.0) Przykład: 42 (42. tydzień roku)
Month --- ---
F Pełen angielski opis, dnia miesiąca, taki jak January czy March January aż do December
m Liczbowa forma miesiąca, z zerami wiodącymi 01 aż do 12
M Krótki, angielski opis miesiąca, trzy litery Jan a do Dec
n Liczbowa forma miesiąca, bez zer wiodących 1 aż do 12
t Ilość dni w danym miesiącu 28 do 31
Rok --- ---
L Informacja o tym, czy rok jest przestępnym 1 jeśli rok jest przestępny, 0 w przeciwnym wypadku.
o Numer roku, zgodny z normą ISO-8601. Zwraca to taką samą wartość jak Y, z takim wyjątkiem, że numer tygodnia ISO (W) należy do poprzedniego lub następnego roku, niż rok użyty w tym miejscu. (dodane w PHP 5.1.0) Przykłady: 1999 lub 2003
Y Pełna liczbowa forma roku, 4 cyfry Przykłady: 1999 lub 2003
y Dwie cyfry reprezentujące rok Przykłady: 99 or 03
Czas --- ---
a Pora dnia - dwie małe litery (przed/po południu) (ang. Ante/Post meridiem) am lub pm
A Pora dnia - dwie duże litery (przed/po południu) (ang. Ante/Post meridiem) AM lub PM
B Swatch Internet Time 000 aż do 999
g Godzina, w formacie 12-godzinnym, bez zer wiodących 1 aż do 12
G Godzina, w formacie 24-godzinnym, bez zer wiodących 0 aż do 23
h Godzina, w formacie 12-godzinnym, z zerami wiodącymi 01 aż do 12
H Godzina, w formacie 24-godzinnym, z zerami wiodącymi 00 through 23
i Minuty z zerami wiodącymi 00 do 59
s Sekundy, z zerami wiodącymi 00 aż do 59
u Mikrosekundy (dodano w PHP 5.2.2) Przykład: 54321
Strefa czasowa --- ---
e Identyfikator strefy czasowej (dodano w PHP 5.1.0) Przykłady: UTC, GMT, Europe/Zagreb
I (duże i) Informacja o tym, czy czas jest letni 1 jeśli czas jest letni, 0 w przeciwnym razie.
O Różnica z czasem Greenwich (GMT) w godzinach Przykład: +0200
P Różnica z czasem Greenwich (GMT) z dwukropkiem pomiędzy godzinami i minutami (dodano w PHP 5.1.3) Przykład: +02:00
T Skrót dla strefy czasowej Przykłady: EST, MDT ...
Z Różnica dla strefy czasowej w sekundach. Wyrównanie to jest zawsze ujemne dla stref położonych na zachód od południka 0, oraz dodatnie dla tych leżących na wschódod niego. -43200 aż do 50400
Pełna Data/Czas --- ---
c Data w standardzie ISO 8601 (dodana w PHP 5) 2004-02-12T15:19:21+00:00
r Data sformatowana zgodnie z » RFC 2822 Przykład: Thu, 21 Dec 2000 16:01:07 +0200
U Sekundy liczone od ery UNIX-a (1 stycznia 1970 00:00:00 czasu Greenwich - GMT) Zobacz także time()

Inne znaki umieszczone w łańcuchu formatującym zostaną przez parser przepisane. Z zwróci zawsze 0 podczas używania gmdate().

Informacja:

Odkąd ta funkcja przyjmuje jako znacznik czasu jedynie typ integer znak formatujący u przydaje się jedynie, gdy używamy funkcji date_format() z samodzielnie zdefiniowanymi znacznikami czasu stworzonymi za pomocą funkcji date_create().

timestamp

Opcjonalny parametr uniksowy znacznik czasu timestamp jest typu integer i domyślnie jest ustawiony na bieżący czas lokalny jeśli timestamp nie został podany. Innymi słowy, domyślnie to wartość funkcji time().

Zwracane wartości

Zwraca sformatowaną datę jako łańcuch. Jeśli użyto wartości parametru znacznik_czasu innej niż liczbowa, cała funkcja zwróci FALSE oraz pojawi się ostrzeżenie klasy E_WARNING.

Błędy/Wyjątki

Każde wywołanie do funkcji date/time spowoduje wygenerowanie E_NOTICE jeśli strefa czasowa jest nieprawidłowa, lub/i wiadomość E_STRICT jeśli użyto ustawień systemu lub zmiennej środowiskowej TZ. Patrz także date_default_timezone_set()

Rejestr zmian

Wersja Opis
5.1.0 Poprawny zakres znacznika czasu to zwykle od piątku, 13 grudnia 1901 20:45:54 GMT (czasu Greenwich) do wtorku, 19 stycznia 2038 03:14:07 GMT. (Wartości te odpowiadają minimalnej i maksymalnej wartości 32-bitowej liczbie całkowitej ze znakiem). Jednakże przed PHP 5.1.0, w niektórych systemach (np. Windows) ten przedział był bardziej ograniczony i zawiera się w przedziale 01-01-1970 do 19-01-2038.
5.1.0

Teraz generuje błędy strefy czasowej o poziomie E_STRICT i E_NOTICE.

5.1.1 Istnieją użyteczne stałe standaryzujące formaty daty/czasu mogące być użyte w celu określenia parametru format.

Przykłady

Przykład #1 Przykłady użycia funkcji date()

<?php
// ustawia domyślnie używaną strefę czasową. Dostępne od PHP 5.1
date_default_timezone_set('UTC');


// wypisuje np.: Monday
echo date("l");

// wypisuje coś jak: Monday 8th August 2005 03:12:46 PM
echo date('l jS F Y h:i:s A');

// wypisuje: 1 lipca, 2000 wypada w Saturday
echo "1 lipca, 2000 wypada w " date("l"mktime(000712000));

/* użycie stałych jako parametru format */
// wypisuje coś jak: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// wypisuje coś jak: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOMmktime(000712000));
?>

Możesz ochronić rozpoznawalne znaki w łańcuchu formatującym przed zinterpretowaniem przez poprzedzenie ich znakiem ucieczki - backslashem. Jeśli znak razem z backslashem jest specjalną sekwencją, możliwe, iż będzie trzeba poprzedzić kolejnym znakiem ucieczki całą sekwencję.

Przykład #2 Znaki ucieczki w funkcji date()

<?php
// wypisuje coś jak: jest Wednesday, 15th
echo date("\j\e\s\\t l, jS");
?>

Możliwe jest użycie funkcji date() razem z funkcją mktime() w celu znalezienia dat z przeszłości lub przyszłości.

Przykład #3 Przykład użycia date() i mktime()

<?php
$jutro 
mktime(000date("m")  , date("d")+1date("Y"));
$ostatni_miesiac mktime(000date("m")-1date("d"),   date("Y"));
$nastepny_rok  mktime(000date("m"),   date("d"),   date("Y")+1);
?>

Informacja:

Rozwiązanie to jest rozsądniejsze, od prostego dodawania lub odejmowania określonej liczby sekund w dniu lub miesiącu, chociażby z powodu zmian czasu.

Poniżej znajduje się kilka przykładów zastosowania date(). Proszę zwrócić uwagę, że powinno się cytować wszystkie znaki aby uniknąć nieoczekiwanych rezultatów, a poza tym, nawet te znaki, które obecnie nie mają specjalnych znaczeń, mogą mieć przypisane jakieś znaczenie w przyszłych wersjach PHP. O ile to możliwe, należy używać cudzysłowów pojedynczych, żeby uniknąć np. zamiany \n na znak nowej linii.

Przykład #4 zastosowania date()

<?php
// Przypuśćmy, że dziś jest 10 marca, 2001, 5:16:18 pm, oraz, że jesteśmy w
// strefie czasowej MST (Mountain Standard Time)

$dzisiaj date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$dzisiaj date("m.d.y");                         // 03.10.01
$dzisiaj date("j, n, Y");                       // 10, 3, 2001
$dzisiaj date("Ymd");                           // 20010310
$dzisiaj date('h-i-s, j-m-y, it is w Day z ');  // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$dzisiaj date('\t\o jS \d\z\i\e\ń');         // to 10. dzień
$dzisiaj date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$dzisiaj date('H:m:s \m \t\o\ \m\i\e\s\i\ą\c'); // 17:03:18 m is month
$dzisiaj date("H:i:s");                         // 17:16:18
?>

Aby sformatować datę w innych językach, należy użyć funkcji setlocale() i strftime() zamiast date().

Notatki

Informacja:

Aby stworzyć znacznik czasu z tekstowego opisu daty, możesz użyć strtotime(). Dodatkowo, niektóre bazy danych mają funkcje konwertujące ich format daty na znacznik czasu (tak jak funkcja » UNIX_TIMESTAMP w MySQL).

Wskazówka

Znacznik czasu z chwili wysłania zapytania jest dostępny w $_SERVER['REQUEST_TIME'] od PHP 5.1.

Zobacz też:


Funkcje daty i czasu
PHP Manual