Funcții de Dată/Timp
PHP Manual

strftime

(PHP 4, PHP 5)

strftimeFormatează o oră/dată locală în conformitate cu setările locale

Descrierea

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

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.

Parametri

format

Următoarele caractere sunt recunoscute în cadrul parametrului format
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.

Avertizare

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.

timestamp

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().

Valorile întoarse

Î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().

Erori/Excepții

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.

Istoria schimbărilor

Versiunea Descriere
5.1.0

Acum generează erori ale zonei orare de tip E_STRICT și E_NOTICE.

Exemple

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";

?>

Note

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.

Vedeți de asemenea


Funcții de Dată/Timp
PHP Manual