(PHP 4, PHP 5)
date — Formatuje lokalny czas/datę
$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().
format
Format zwracanej daty string. Zobacz możliwe ustawienia formatowania poniżej.
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().
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.
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()
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 |
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ł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(0, 0, 0, 7, 1, 2000));
/* 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_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>
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(0, 0, 0, date("m") , date("d")+1, date("Y"));
$ostatni_miesiac = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nastepny_rok = mktime(0, 0, 0, date("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().
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).
Znacznik czasu z chwili wysłania zapytania jest dostępny w $_SERVER['REQUEST_TIME'] od PHP 5.1.