PHP kézikönyv
Előző |  | Következő

# strftime

(PHP 3, PHP 4, PHP 5)

strftime -- Helyi időstringet formáz a megadott formátum (és időpont) szerint

## Leírás

string strftime ( string format [, int timestamp] )

A megadott formátumstringnek megfelelően formázott dátum-stringgel tér vissza, felhasználva a megadott timestamp paramétert, vagy ennek hiányában a helyi időt. Hónap, és napnevek, továbbá más nyelvfüggő stringek az setlocale() függvénnyel beállított értékeknek felelnek meg.

Az alábbi formátumstringeket ismeri fel a függvény:

- %a - hét napja, rövidítve

- %A - hét napja, teljes

- %b - hónap neve, rövidítve

- %B - hónap neve, teljes

- %c - dátum és idő alapértelmezett formátumban

- %C - évszám 2 utolsó jegy nélkül (trunc(év/100), értéke 00 és 99 között)

- %d - nap, 2 számjegy ("01" .. "31")

- %D - azonos %m/%d/%y-val

- %e - nap, 2 karakter, extra szóközzel az egyjegyű számok előtt (" 1" .. "31")

- %g - mint a %G, csak évszázad nélkül

- %G - A 4-jegyű évszám, ami az ISO hétszámhoz tartozik (lásd a %V opciót). Ez azonos formátumú és értékű, mint a %Y, kivéve, hogy ha az ISO hétszám az előző, vagy a következő évhez tartozik, akkor azzal az évet adja.

- %h - ugyanaz, mint a %b

- %H - óra, 24-órás formátumban, 2 számjeggyel ("00" .. "23")

- %I - óra, 12-órás formátumban, 2 számjeggyel ("01" .. "12")

- %j - év napja, 3 számjegy ("001" .. "366" !!!)

- %m - hónap, számmal ("01" .. "12") [van kitöltő szóköz]

- %M - perc, [2 számjegy]

- %n - újsor karakter

- %p - `am' vagy `pm', annak megfelelően, hogy az adott időpont délelőtt, vagy délután van-e

- %r - időpont 12 órás formátumban [pl.: 12:00:00 AM]

- %R - időpont 24 órás formátumban [pl.: 00:00][Itt nincs másodperc!!!]

- %S - másodperc [2 számjegy]

- %t - tabulátor

- %T - idő, azonos a %H:%M:%S-val

- %u - hét napja, számmal [1,7], az 1 a hétfőt jelenti

  Figyelem
  Úgy tűnik, hogy Sun Solarison a vasárnap az 1-es, holott az ISO 9889:1999 (az aktuális C standard) világosan megmondja, hogy hétfőnek kell lennie.

- %U - az aktuális év hányadik hetében járunk, a hét vasárnappal kezdődik, vagyis az "01" hét január első vasárnapján kezdődik. [Az első hét előtti napokat "00" hétnek jelzi!!!]

- %V - Az ISO 8601:1988 hétszám ("01" .. 53), ahol az az első hét, amelynek legalább 4 napja van az újévben. A hét első napja hétfő. Használd a %G-t vagy a %g-t, ha egy év kell, ami egy időbélyeg hétszámához tartozik. [???] [Helyesen kezeli az előző évből átnyúló heteket is]

- %W - év hete, az év első hétfőjén kezdődik az "01" hét

- %w - hét napja számmal, a vasárnap a 0

- %x - alapértelmezett dátumformátum idő nélkül

- %X - alapértelmezett időpontformátum dátum nélkül

- %y - év 2 számjeggyel ("00" .. "99")

- %Y - év, évszázaddal együtt

- %Z vagy %z- időzóna neve [3 betű]

- %% - a `%' karakter

> Megjegyzés: Nem minden formátumstring van meg az összes C könyvtárban, ami azt jelenti, hogy a PHP strftime() függvényében sem lesznek elérhetők. Ráadásul nem minden platform támogatja a negatív időbélyegeket, ezért a előfordulhat, hogy nem használhatsz Unix Epoch előtti dátumot. Ez azt jelenti, hogy például a %e, %T, %R és a %D (esetleg egyebek is) nem fog működni 1970. január 1. előtti dátummal Windows-on, néhány Linux disztribűcióban, és még néhány egyéb operációs rendszeren. A Windows rendszerekre vonatkozóan a a támogatott konverzió leírókról található egy teljes áttekintés az MSDN weboldalon.

Példa 1. strftime() példa

`<?php setlocale(LC_TIME, "C"); echo strftime("%A"); setlocale(LC_TIME, "fi_FI"); echo strftime(" finnül %A,"); setlocale(LC_TIME, "fr_FR"); echo strftime(" franciául %A és "); setlocale(LC_TIME, "hu_HU"); echo strftime(" magyarul %A\n"); ?>`

Ez a példa akkor működik jól, ha a megfelelő locales beállításokat installálod.

> Megjegyzés: A %G és %V, amelyek az ISO 8601:1988 hétszámokra alapulnak, nem az elvárt (de a helyes) eredményt adják, ha nem értetted meg alaposan a számozási rendszert. Lásd a fenti %V-t valamint az alábbi példát week numbers can give unexpected (albeit correct) results if the numbering system is not thoroughly understood. See %V above and example below.

Példa 2. ISO 8601:1988 hétszámozási példa

`<?php
/* December 2002 / January 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 */
// Kimenet: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";
// Kimenet: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";
// Kimenet: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("1/3/2003")) . "\n";
// Kimenet: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("1/10/2003")) . "\n";
/* December 2004 / January 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 */
// Kimenet: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";
// Kimenet: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";
// Kimenet: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("1/2/2005")) . "\n";
// Kimenet: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("1/3/2005")) . "\n";
?>`

Lásd még setlocale() és mktime(), strptime() és az Open Group specification of strftime()() függvényeket.

Előző | Tartalom | Következő
mktime | Fel | strptime