Podręcznik PHP
Poprzedni |  | Następny

# date

(PHP 3, PHP 4, PHP 5)

date -- Formatuje lokalny czas/datę

## Opis

string date ( string format [, int znacznik_czasu] )

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.

Nierozpoznane znaki w szablonie formatującym będą wyświetlone tak jak są. "Z" zawsze zwróci "0" kiedy używana jest funkcja gmdate().

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
date_sunset | Początek rozdziału | getdate