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