Forum und email

strftime

(PHP 4, PHP 5)

strftime — Sformátovať miestny čas/dátum podľa miestnych nastavení

Popis

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

Vracia reťazec sformátovaný podľa daného formátovacieho reťazca pomocou daného timestamp u 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
    Warning

    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 `%'

Note: Vaša C knižnica nemusí podporovať všetky konverzné špecifikátory; v takom prípade nebudú podporované PHP funkciou strftime(). To znamená, že napr. %e, %T, %R a %D (môže ich byť viac) nebudú na Windowse fungovať.

Example#1 strftime() príklady lokáls

<?php
setlocale 
(LC_TIME"C");
print (
strftime ("%A vo finstine je "));
setlocale (LC_TIME"fi_FI");
print (
strftime ("%A, vo francuzstine "));
setlocale (LC_TIME"fr_FR");
print (
strftime ("%A a v nemcine "));
setlocale (LC_TIME"de_DE");
print (
strftime ("%A.\n"));
?>
Tento príklad funguje iba ak máte patričné lokály vo vašom systéme naištalované.

Note: %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.

Example#2 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";

?>

Tiež pozri setlocale() a mktime() and the » Open Group špecifikácia o strftime().