(PHP 4, PHP 5)
strftime — Formatează o oră/dată locală în conformitate cu setările locale
Formatează ora și/sau data în conformitate cu setările locale. Denumirile lunilor și a zilelor săptămânii și alte string-uri dependente de limbă sunt în conformitate cu setările locale stabilite prin fincția setlocale().
Nu toate specificările de convertire pot fi susținute de biblioteca dumneavoastră C, în care caz ele nu vor fi susținute de funcția PHP strftime(). În plus, nu toate platformele susțin timestamp-uri negative, de aceea domeniul de date poate fi limitat la valori nu mai mici de Epoca Unix. Aceasta înseamnă că %e, %T, %R și %D (pot fi mai multe), precum și date anterioare la Jan 1, 1970 nu vor funcționa în Windows, unele distibuții Linux, și alte câteva sisteme de operare. Pentru sisteme Windows o privire de ansamblu a specificatorilor de conversie susținuți poate fi găsită pe acest » website MSDN.
format | Descriere | Exemplu de valori întoarse |
---|---|---|
Ziua | --- | --- |
%a | Reprezentarea textuală abreviată a zilei săptămânii | De la Sun până la Sat |
%A | Reprezentarea textuală deplină a zilei săptămânii | De la Sunday până la Saturday |
%d | Ziua lunii din două cifre (prefixată cu zero) | De la 01 până la 31 |
%e | Ziua lunii prefixată cu spațiu în cazul unei singure cifre | De la 1 până la 31 |
%j | Ziua anului, 3 cifre prefixate cu zerouri | De la 001 până la 366 |
%u | Reprezentarea numerică a zilei săptămânii în conformitate cu ISO-8601 | De la 1 (Luni) până la 7 (Duminică) |
%w | Reprezentarea numerică a zilei săptămânii | De la 0 (Duminică) până la 6 (Sâmbătă) |
Săptămâna | --- | --- |
%U | Numărul săptămânii anului dat. Prima Duminică din an este începutul primei săptămâni | 13 (pentru a 13-a săptămână deplină a anului) |
%V | Numărul săptămânii anului dat în conformitate cu ISO-8601:1988, începând cu prima săptămână a anului cu cel puțin 4 zile de lucru, ziua de Luni fiind prima zi a săptămânii | De la 01 până la 53 (unde 53 reprezintă o săptămână suprapusă) |
%W | Reprezentarea numerică a săptămânii din an, începând cu prima zi de Luni ca prima săptămână | 46 (pentru a 46-a săptămână a anului începând cu Luni) |
Luna | --- | --- |
%b | Denumirea abreviată a lunii bazată pe setările locale | De la Jan până la Dec |
%B | Denumirea deplină a lunii bazată pe setările locale | De la January până la December |
%h | Denumirea abreviată a lunii bazată pe setările locale (un pseudonim pentru %b) | De la Jan până la Dec |
%m | Reprezentarea din două cifre a lunii | De la 01 (Ianuarie) până la 12 (Decembrie) |
Anul | --- | --- |
%C | Reprezentarea din două cifre a secolului (anul divizat la 100, trunchiat până la un întreg) | 19 pentru secolul 20 |
%g | Reprezentarea din două cifre a anului conform standardului ISO-8601:1988 (vezi %V) | Exemplu: 09 pentru 6 Ianuarie, 2009 |
%G | Versiunea deplină din patru cifre a %g | Exemplu: 2008 pentru 3 Ianuarie 2009 |
%y | Reprezentarea din două cifre a anului | Exemplu: 09 pentru 2009, 79 pentru 1979 |
%Y | Reprezentarea din patru cifre a anului | Exemplu: 2038 |
Ora | --- | --- |
%H | Reprezentarea din două cifre a orei în formatul cu 24 de ore | De la 00 până la 23 |
%I | Reprezentarea din două cifre a orei în formatul cu 12 ore | De la 01 până la 12 |
%l (litera minusculă 'L') | Ora în formatul cu 12 ore, cu un spațiu înaintea orei cu o singură cifră | De la 1 până la 12 |
%M | Reprezentarea din două cifre a minutei | De la 00 până la 59 |
%p | 'AM' sau 'PM' cu litere majuscule în dependență de oră | Exemplu: AM pentru 00:31, PM pentru 22:23 |
%P | 'am' sau 'pm' cu litere minuscule în dependență de oră | Exemplu: am pentru 00:31, pm pentru 22:23 |
%r | Echivalent cu "%I:%M:%S %p" | Exemplu: 09:34:17 PM pentru 21:34:17 |
%R | Echivalent cu "%H:%M" | Exemplu: 00:35 pentru 12:35 AM, 16:44 pentru 4:44 PM |
%S | Reprezentarea din două cifre a secundei | De la 00 până la 59 |
%T | Echivalent cu "%H:%M:%S" | Exemplu: 21:34:17 pentru 09:34:17 PM |
%X | Reprezentarea preferențială a orei în baza setărilor locale, fără dată | Exemplu: 03:59:16 sau 15:59:16 |
%z | Deplasamentul fusului orar relativ la UTC sau abrevierea (depinde de sistemul de operare) | Exemplu: -0500 sau EST pentru Eastern Time |
%Z | Deplasamentul/abrevierea fusului orar ce NU este dată de %z (depinde de sistemul de operare) | Exemplu: -0500 sau EST pentru Eastern Time |
Data și ora | --- | --- |
%c | Reprezentarea preferențială a datei și orei bazate pe setările locale | Exemplu: Tue Feb 5 00:45:10 2009 pentru 4 februarie 2009, ora 12:45:10 AM |
%D | Echivalent cu "%m/%d/%y" | Exemplu: 02/05/09 pentru February 5, 2009 |
%F | Echivalent cu "%Y-%m-%d" (utilizat deseori la bazele de date) | Exemplu: 2009-02-05 pentru February 5, 2009 |
%s | Momentul de timp după Epoca Unix (la fel ca și în cazul funcției time()) | Exemplu: 305815200 pentru September 10, 1979 08:40:00 AM |
%x | Reprezentarea preferențială a datei în baza setărilor locale, fără oră | Exemplu: 02/05/09 pentru February 5, 2009 |
Diverse | --- | --- |
%n | Trecerea la linie nouă ("\n") | --- |
%t | Caracterul Tab ("\t") | --- |
%% | Caracterul "procent" ("%") | --- |
Lungimea maximă a acestui parametru este de 1023 caractere.
Contrar standardului ISO-9899:1999, Sun Solaris pune în corespondență zilei de Duminică numărul 1. Ca rezultat, %u poate să nu funcționeze după cum este descris în acest manual.
Parametrul opțional timestamp este un integer și este un moment de timp Unix și are valoarea implicită a orei locale, dacă parametrul timestamp nu este indicat. Cu alte cuvinte, valoarea implicită este cea a funcției time().
Întoarce un string formatat în corespundere cu parametrul format, utilizând timestamp-ul dat sau data și ora locală, dacă nu este furnizat un timestamp. Denumirile lunilor și a zilelor săptămânii și alte string-uri dependente de limbă sunt în corespundere cu setările locale stabilite cu setlocale().
Fiecare apel al unei funcții de dată/oră va genera o E_NOTICE dacă zona orară nu este validă și/sau un mesaj E_STRICT sau E_WARNING dacă se utilizează setările sistemului sau variabila de mediu TZ. Vedeți de asemenea date_default_timezone_set()
Deoarece valoarea întoarsă depinde de biblioteca C ce stă la bază, unii specificatori de conversie nu sunt susținuți. În Windows, furnizarea specificatorilor de conversie necunoscuți va rezulta în 5 mesaje E_WARNING și va întoarce FALSE. În alte sisteme de operare puteți să nu obțineți mesaje E_WARNING iar rezultatul poate să conțină specificatorii de conversie neconvertiți.
Versiunea | Descriere |
---|---|
5.1.0 | Acum generează erori ale zonei orare de tip E_STRICT și E_NOTICE. |
Acest exemplu va funcționa dacă aveți setările locale respective instalate în sistem.
Example #1 Exemple strftime()
<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
?>
Example #2 Exemplu al numerelor săptămânilor conform standardului ISO 8601:1988
<?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 */
// Afișează: 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";
// Afișează: 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";
// Afișează: 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";
// Afișează: 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 */
// Afișează: 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";
// Afișează: 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";
// Afișează: 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";
// Afișează: 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";
?>
Notă: %G și %V, care se bazează pe numerele săptămânilor conform standardului ISO 8601:1988 pot oferi rezultate neașteptate (dar corecte) dacă sistemul de numerotare nu este înțeles în detaliu. Vedeți exemplele %V în această pagină a manualului.