date_timezone_set
getdate
Funkcje daty i czasu
PHP Manual

# date

(PHP 4, PHP 5)

date — Formatuje 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ść parametru`format` | 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(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().

### 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ż:

- getlastmod() - Gets time of last page modification
- gmdate() - Formatuje datę/czas dla strefy GMT/UTC
- mktime() - Oblicza uniksowy znacznik czasu dla podanej daty
- strftime() - Formatuje lokalną datę/czas zgodnie z lokalizacją
- time() - Zwraca aktualny uniksowy znacznik czasu

date_timezone_set
getdate
Funkcje daty i czasu
PHP Manual