PHP -> Funkcie -> Dátum a čas funkcie PHP -> funkcia strftime
Syntax
string strftime(string format, int timestamp);
Popis
Príkaz jazyka PHP
strftime - Sformátovať miestny čas/dátum podľa miestnych nastavení
Vracia reťazec sformátovaný podľa daného formátovacieho reťazca pomocou daného timestampu alebo aktuálneho miestneho času, ak nie je daný žiadny timestamp. Názvy mesiacov a dní v týždni a reťazce iných jazykových závislosti berú ohľad na aktuálne miestne nastavenie s setlocale().
Následujúce konverzné špecifikátory sa rozpoznávajú vo formátovacom reťazci:
- %a - skrátený názov dňa podľa aktuálnej lokály
- %A - plný názov dňa podľa aktuálnej lokály
- %b - skrátený názov mesiaca podľa aktuálnej lokály
- %B - plný názov mesiaca podľa aktuálnej lokály
- %c - preferovaná reprezentácia dátumu a času pre aktuálnu lokálu
- %C - číslo storočia (rok sa vydelí 100 a skráti sa na integer, rozsah 00 až 99)
- %d - deň v mesiaci ako desatinné číslo (rozsah 01 až 31)
- %D - to isté ako %m/%d/%y
- %e - deň v mesiaci ako desatinné číslor, pred jednu číslicu sa pridá medzera (rozsah ' 1' až '31')
- %g - ako %G, len bez storočia.
- %G - 4-číselný rok zodpovedajúci číslu týždňa ISO (pozri %V). Má rovnaký formát a hodnotu ako %Y, až na to, že ak číslo týždňa ISO patrí k predchádzajúcemu alebo následujúcemu roku, použije sa ten rok miesto neho.
- %h - to isté ako %b
- %H - hodina ako desatinné číslo v tvare 24-hodinových hodín (rozsah 00 až 23)
- %I - hodina ako desatinné číslo v tvare 12-hodinových hodín (rozsah 01 až 12)
- %j - deň v roku ako desatinné číslo (rozsah 001 až 366)
- %m - mesiac ako desatinné číslo (rozsah 01 až 12)
- %M - minúta ako desatinné číslo
- %n - znak nového riadku
- %p - buď `am' alebo `pm' podľa danej časovej hodnoty, alebo zodpovedajúce reťazce podľa miestnej lokály
- %r - čas v a.m. a p.m. notácii
- %R - čas v 24 hodinovej notácii
- %S - sekundy ako desatinné číslo
- %t - znak tab
- %T - aktuálny čas, rovný s %H:%M:%S
- %u - deň v týždni ako desatinné číslo [1,7], s 1 reprezetujúcou Pondelok ; Varovanie: Sun Solaris začína s Nedeľou ako 1, i keď ISO 9889:1999 (aktuálny C štandard) jasne určuje, že by to mal byť Pondelok.
- %U - číslo týždňa v aktuálnom roku ako desatinné číslo, počínajúc s prvou Nedeľou ako prvým dňom v prvom týždni week
- %V - ISO 8601:1988 číslo týždňa v akutuálnom roku ako desatinné číslo, rozsah 01 až 53, kde týždeňk 1 je prvým týždňom, ktorý má najmenej 4 dni v akutálnom roku a s Pondelkom ako prvým dňom v týždni. (Používajte %G alebo %g pre komponentu roka, ktorá zodpovedá číslu týždňa pre určený timestamp.)
- %W - číslo týždňa aktuálneho roka ako desatinné číslo, počínajúc s prvým Pondelkom ako prvým dňom v prvom týždni
- %w - deň v týždni ako desatinné číslo, Nedeľa je 0
- %x - preferovaná reprezentácia dátumu pre aktuálnu lokálu bez času
- %X - preferovaná reprezentácia času pre aktuálnu lokálu bez dátumu
- %y - rok ako desatinné číslo bez storočia (rozsah 00 až 99)
- %Y - rok ako desatinné číslo vrátane storočia
- %Z - časová zóna alebo názov alebo skratka
- %% - znak `%'
Príklady
//This example works if you have the respective locales installed in your system.
setlocale
("LC_TIME",
"C");
print(strftime
("%A in Finnish is "));
setlocale
("LC_TIME",
"fi");
print(strftime
("%A, in French "));
setlocale
("LC_TIME",
"fr");
print(strftime
("%A and in German "));
setlocale
("LC_TIME",
"de");
print(strftime
("%A.\n"));
Tento príklad funguje iba ak máte patričné lokály vo vašom systéme naištalované.
Poznámka: %G a %V, ktoré sú založené na ISO 8601:1988 číslach týždňov, môžu podať neočakávané výsledky, ak nie je číselný systém správne chápaný. Pozri %V vyššie a príklad uvedený nižšie.
Príklad číslovania týždňov ISO 8601:1988
<?php
/* December 2002 / Januar 2003
ISOWk M Tu W Thu F Sa Su
----- ----------------------------
51 16 17 18 19 20 21 22
52 23 24 25 26 27 28 29
1 30 31 1 2 3 4 5
2 6 7 8 9 10 11 12
3 13 14 15 16 17 18 19 */
// Vypise: 12/28/2002 - %V,%G,%Y = 52,2002,2002
print "12/28/2002 - %V,%G,%Y = " . strftime
("%V,%G,%Y",strtotime
("12/28/2002")) .
"\n";
// Vypise: 12/30/2002 - %V,%G,%Y = 1,2003,2002
print "12/30/2002 - %V,%G,%Y = " . strftime
("%V,%G,%Y",strtotime
("12/30/2002")) .
"\n";
// Vypise: 1/3/2003 - %V,%G,%Y = 1,2003,2003
print "1/3/2003 - %V,%G,%Y = " . strftime
("%V,%G,%Y",strtotime
("1/3/2003")) .
"\n";
// Vypise: 1/10/2003 - %V,%G,%Y = 2,2003,2003
print "1/10/2003 - %V,%G,%Y = " . strftime
("%V,%G,%Y",strtotime
("1/10/2003")) .
"\n";
/* December 2004 / Januar 2005
ISOWk M Tu W Thu F Sa Su
----- ----------------------------
51 13 14 15 16 17 18 19
52 20 21 22 23 24 25 26
53 27 28 29 30 31 1 2
1 3 4 5 6 7 8 9
2 10 11 12 13 14 15 16 */
// Vypise: 12/23/2004 - %V,%G,%Y = 52,2004,2004
print "12/23/2004 - %V,%G,%Y = " . strftime
("%V,%G,%Y",strtotime
("12/23/2004")) .
"\n";
// Vypise: 12/31/2004 - %V,%G,%Y = 53,2004,2004
print "12/31/2004 - %V,%G,%Y = " . strftime
("%V,%G,%Y",strtotime
("12/31/2004")) .
"\n";
// Vypise: 1/2/2005 - %V,%G,%Y = 53,2004,2005
print "1/2/2005 - %V,%G,%Y = " . strftime
("%V,%G,%Y",strtotime
("1/2/2005")) .
"\n";
// Vypise: 1/3/2005 - %V,%G,%Y = 1,2005,2005
print "1/3/2005 - %V,%G,%Y = " . strftime
("%V,%G,%Y",strtotime
("1/3/2005")) .
"\n";
?>
Pozri aj
setlocale, mktime