Forum und email

date

(PHP 4, PHP 5)

date — Sformátovať miestny čas/dátum

Popis

string date ( string $format [, int $ timestamp ] )

Vracia reťazec sformátovaný podľa daného formátového reťazca pomocou daného integeru timestamp alebo ak nie je daný žiadny timestamp, podľa aktuálneho miestneho času. Inými slovami, timestamp je voliteľný a jeho východzou hodnotou je time().

Note: Platný rozsah timestampu je typicky od Fri, 13 Dec 1901 20:45:54 GMT do Tue, 19 Jan 2038 03:14:07 GMT. (Toto sú dátumy, ktoré zodpovedajú minimálnym a maximálnym hodnotám pre 32-bitový signed integer). Na windowse je tento rozsah ohraničený od 01-01-1970 do 19-01-2038.
Na vygenerovanie timestampu z reťazcovej reprezentácie dátumu môžete použiť strtotime(). Niektoré databázy majú funkcie na konvertovanie svojich formátov dátumu na timestampy (ako je MySQL funkcia » UNIX_TIMESTAMP).

Následujúce znaky sa rozpoznávajú v reťazcovom parametri format
format znak Popis Príklad vrátenych hodnôt
a Lowercase Ante meridiem a Post meridiem am alebo pm
A Uppercase Ante meridiem a Post meridiem AM alebo PM
B Swatch Internet čas 000999
d Deň mesiaca, 2 číslice s úvodnými nulami 01 do 31
D Textová reprezentácia dňa, tri písmená MonSun
F Plná textová reprezentácia mesiaca, ako je January alebo March JanuaryDecember
g 12-hodinový formát hodiny bez úvodných núl 112
G 24-hodinový formát hodiny bez úvodných núl 0 do 23
h 12-hodinový formát hodiny s úvodnými nulami 0112
H 24-hodinový formát hodiny s úvodnými nulami 00 do 23
i Minúty s úvodnými nulami 00 do 59
I (velké i) Buď dátum je alebo nie je v letnom čase 1 ak je Letný Čas, inak 0.
j Deň v miesiaci bez úvodných núl 1 do 31
l (malé 'L') Plná textová reprezentácia dňa v týždni SundaySaturday
L Či je priestupný rok 1 ak je pristupný rok, inak 0.
m Číselná reprezentácia mesiaca s úvodnými nulami 0112
M Krátka textová reprezentácia mesiaca, tri písmená JanDec
n Číselná reprezentácia mesiaca bez úvodných núl 112
O Rozdiel od Greenwichského času (GMT) v hodinách Príklad: +0200
r RFC 822 formátovný dátum Príkled: Thu, 21 Dec 2000 16:01:07 +0200
s Sekundy s úvodnými nulami 0059
S Anglická radová prípona pre deň v miesiaci, 2 znaky st, nd, rd alebo th. Dobre funguje s j
t Počet dní v dahom mesiaci 2831
T Nastavenie časovej zóny tohto stroja Príklad: EST, MDT ...
U Sekundy od Unixovej Epochy (1. Január 1970 00:00:00 GMT) Tiež pozri time()
w Časová reprezentácia dňa v týždni 0 (pre Nedeľu) až 6 (pre Sobotu)
W ISO-8601 číslo týždňa v roku, týždne začínajú Pondelkom (pridané v PHP 4.1.0) Príklad: 42 (42. týždeň v roku)
Y Plná číselná reprezentácia roku, 4 číslice Príklady: 1999 alebo 2003
y Dvoj-číslicová reprezentácia roku Príklady: 99 alebo 03
z Deň v roku 0366
Z Offset časovej zóny v sekundách. Offset pre časové zóny západne od UTC sú vždy záporné a pre tie na východ od UTC sú vždy kladné. -4320043200

Nerozpoznané znaky vo formátovanom reťazci budú vytlačené tak ako-sú. Formát Z vráti vždy 0 pri používaní gmdate().

Example#1 date() príklady

<?php
// Vypisuje nieco ako: Wednesday
echo date("l");

// Vypisuje nieco ako: Wednesday 15th of January 2003 05:51:38 AM
echo date ("l dS of F Y h:i:s A");

// Vypisuje: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " date ("l"mktime(0,0,0,7,1,2000));
?>

Pred rozpoznávané znaky môžete napísať opačné lomítko (backslash), aby nedošlo k formátovaniu. Ak už znak s opačným lomítkom je špeciálnou sekvenciou, budete ju tiež musieť zaopatriť lomítkom.

Example#2 Vyskočenie znakov v date()

<?php
// vypisuje nieco ako: Wednesday the 15th
echo date("l \\t\h\e jS");
?>

Je možné použiť date() spolu s mktime() na zistinie dátumov v budúcnosti alebo v minulosti.

Example#3 date() a mktime() príklad

<?php
$zajtra  
mktime (0,0,0,date("m")  ,date("d")+1,date("Y"));
$minulymesiac mktime (0,0,0,date("m")-1,date("d"),  date("Y"));
$buducirok  mktime (0,0,0,date("m"),  date("d"),  date("Y")+1);
?>

Note: Toto môže byť spoľahlivejšie než jednoduché pridanie alebo odobranie počtu sekúnd v dni alebo miesiaci do timestampu, kvôli letnému času.

Nejaké príklady date() formátovania. Všetky ostatné znaky by ste mali 'vyskočiť', pretože tie, ktoré už majú špeciálny význam budú spôsobovať nežiadúce výsledky a iným znakom môže byť nejaký význam priradený v budúcich verziách PHP. Uistite sa, že pri vyskakovaní používate jednoduché apostrofy, aby ste predišli tomu, že sa znaky ako \n nestanú novými riadkami.

Example#4 date() Formátovanie

<?php
// Predpokladame, ze dnes je: 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
?>

Na formátovanie dátumov v iných jazykoch by ste mali používať funkcie setlocale() a strftime().

Tiež pozri getlastmod(), gmdate(), mktime(), strftime() a time().