Podręcznik PHP
Poprzedni
Następny
date
Opis
Zwraca datę sformatowaną według szablonu podanego w argumencie format. Żądana data określona jest w argumencie znacznik_czasu, a w przypadku jego braku pobierany jest aktualny czas.
Notatka:
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).
W systemie Windows zakres ten jest bardziej ograniczony i zawiera się w przedziale 01-01-1970 do 19-01-2038.
Wygenerowanie znacznika czasu z daty zapisanej jako łańcuch znaków umożliwia funkcja strtotime().
Również niektóre systemy baz danych mają funkcje konwersji ich formatów daty w uniksowy znacznik czasu (jak np. funkcja UNIX_TIMESTAMP w MySQL-u).
Poniższych znaków używa się w szablonie formatującym datę:
a - "am" lub "pm "
A - "AM" lub "PM "
B - Czas internetowy Swatcha
d - dzień miesiąca, 2 cyfry z zerem na początku; tzn. od "01 "do "31"
D - dzień tygodnia, tekst, 3 litery; n.p. "Fri "
F - miesiąc, tekst, pełna nazwa; n.p. "January "
g - godzina, format 12-godzinny bez zera na początku; tzn. od "1 "do "12"
G - godzina, format 24-godzinny bez zera na początku; tzn. od "0 "do "23"
h - godzina, format 12-godzinny z zerem na początku; tzn. od "01 "do "12"
H - godzina, format 24-godzinny z zerem na początku; tzn. od "00 "do "23"
i - minuty; tzn. od "00 "do "59"
I (duża litera i) - "1 "jeśli czas oszczędzania światła słonecznego (w Polsce - czas letni), "0" jeśli czas standardowy (w Polsce - zimowy)
j - dzień miesiąca bez zera na początku; tzn. od "1 "do "31"
l (mała litera 'L') - dzień tygodnia, tekst, pełna nazwa; n.p. "Friday "
L - "1" jeśli rok przestępny, "0 "w przeciwnym razie
m - miesiąc; tzn. "01 "to "12"
M - miesiąc, tekst, 3 litery; n.p. "Jan "
n - miesiąc bez zera na początku; tzn. "1 "to "12"
O - różnica w stosunku do czasu Greenwich; n.p. "+0200 "
r - data sformatowana według RFC 822; n.p. "Thu, 21 Dec 2000 16:01:07 +0200 "(dodane w PHP 4.0.4)
s - sekundy; i.e. "00 "to "59"
S - standardowy angielski sufiks liczebnika porządkowego, 2 litery; tzn. "st", "nd", "rd "lub "th"
t - liczba dni w danym miesiącu; tzn. od "28 "do "31"
T - strefa czasowa ustawiona na tej maszynie; n.p. "EST "lub "MDT"
U - liczba sekund od uniksowej Epoki (1 stycznia 1970 00:00:00 GMT)
w - dzień tygodnia, liczbowy, tzn. od "0" (Niedziela) do "6 "(Sobota)
W - numer tygodnia w roku według ISO-8601, tydzień zaczyna się w poniedziałek (dodane w PHP 4.1.0)
Y - rok, 4 liczby; n.p. "1999 "
y - rok, 2 liczby; n.p. "99 "
z - dzień roku; tzn. od "0 "do "365"
Z - ofset strefy czasowej w sekundach (tzn. pomiędzy "-43200 "a "43200").
Ofset dla stref czasowych na zachód od UTC (południka zero) jest zawsze ujemny a dla tych na wschód od UTC jest zawsze dodatni.
Przykład 1. przykłady użycia date()
echo date ("l dS of F Y h:i:s A"); echo "July 1, 2000 is on a ". date ("l", mktime(0,0,0,7,1,2000));
Jeśli nie chcesz, aby któryś z rozpoznawalnych w szablonie znaków został zastąpiony odpowiadającą mu częścią daty, musisz poprzedzić go znakiem odwrotnego ukośnika (backslash).
Jeśli znak razem z odwrotnym ukośnikiem tworzy jakiś znak specjalny, musisz również zacytować ukośnik odwrotny.
Przykład 2.
Opuszczanie znaków w szablonie date()
echo date( "l \\t\h\e jS"); / / wyświetla tekst typu 'Saturday the 8th '
Można użyć date() i mktime() razem, aby odszukać daty w przyszłości lub przeszłości.
Przykład 3. przykłady zastosowania date() i mktime()
$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")); $kolejny_rok = mktime (0,0,0,date("m"), date("d"), date("Y")+1);
Notatka:
Rozwiązanie to jest bardziej godne zaufania od dodawania lub odejmowania określonej liczby sekund, chociażby z powodu zmiany 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ą znaczenia, 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()
/* Dzisiaj jest March 10th, 2001, 5:16:18 pm * / $today = date( "F j, Y, g:i a"); / / March 10, 2001, 5:16 pm $today = date("m.d.y"); / / 03.10.01 $today = date("j, n, Y"); / / 10, 3, 2001 $today = date("Ymd"); / / 20010310 $today = date('h-i-s, j-m-y, it is w Day z '); / / 05-16-17, 10-03-01, 1631 1618 6 Fripm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y .'); / / It is the 10th day. $today = date("D M j G:i:s T Y"); / / Sat Mar 10 15:16:08 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); / / 17:03:17 m is month $today = date("H:i:s"); / / 17:16:17
Aby sformatować datę w innych językach, należy użyć funkcji setlocale() i strftime().
Patrz także getlastmod(), gmdate(), mktime(), strftime() i time().
Poprzedni
Spis treści
Następny
Początek rozdziału