php obține data curentă. Php lucrează cu data - data DateTime mktime și altele...

Evident, de foarte multe ori programatorii trebuie lucrați cu data și ora. Cel mai simplu exemplu este data și ora la care un mesaj a fost postat pe un forum. Și, desigur, astfel de lucruri pot fi realizate PHP, mai ales că oportunitățile pentru lucrul cu data și ora în PHP Multe.

Funcția de bază asociată cu data și ora în PHP, - aceasta este funcția time()., care returnează numărul de secunde scurse de atunci miezul nopții 01.01.1970(nașterea unei ere Unix):

echotime();
?>

Rulând acest script, veți afla câte secunde au trecut de atunci miezul nopții 01.01.1970 până la apel funcții time().în scenariul tău.

Desigur, pe lângă asta funcția de bază, care este prezent în toate limbajele de programare unde puteți lucrați cu data și ora(pe macar, printre cele pe care le cunosc), mai există o funcție numită getdate():

$datetime = getdate();
foreach ($datetime ca $k=>$v)
ecou „$k - $v
";
?>

Prin rularea acestui script, veți vedea un set de chei în matrice și valorile lor corespunzătoare (în același timp, am repetat construcția pentru fiecare). Cred că acum nu vă va fi greu să aflați date legate de data si ora. De exemplu, la ieșire ora curentă, este necesar să scrieți următorul cod:

$datetime = getdate();
echo $datetime["ore"].":".$datetime["minute"].":".$datetime["secunde"];
?>

De asemenea la funcțiile getdate(). există un parametru opțional care înseamnă numărul de secunde scurse de atunci miezul nopții 01.01.1970. Este făcută astfel încât această funcție să poată returna nu numai ora și data curente, ci, în general, orice:

$datetime = getdate(152353232);
echo $datetime[„an”];
?>

Ca rezultat, vei vedea 1974 an.

De asemenea, există funcția date().. Recomand să vă uitați la descrierea acestuia în manual, ca funcţie dată ia un parametru foarte complex care setează formatul de ieșire a datei. Există puțin mai mult de 30 de elemente de formatare. Și în exemplul de mai jos, voi da câteva dintre ele și voi privi restul în cartea de referință, pentru că nu trebuie să le memorați, dar este foarte de dorit să vă familiarizați cu ele. Și este imperativ să cunoașteți principiul utilizării lor, iar următorul exemplu este despre acesta:

echo date ("Astăzi d.m.Y H:i:s");
?>

Ca rezultat, veți vedea ceva de genul acesta: Astăzi 15.11.2010 21:44:24". De asemenea funcții date(). Există, de asemenea, un al doilea parametru opțional care specifică timestamp-ul, doar valoarea egală cu numărul de secunde scurse de atunci miezul nopții 01.01.1970. Un exemplu de utilizare a celui de-al doilea parametru:

echo date(„Odată a fost d.m.Y H:i:s”, 5393235329);
?>

De asemenea, există funcția gmdate()., care este un analog complet funcții date()., dar funcția gmdate(). arată ora nu în funcție de fusul orar al serverului pe care rulează scriptul, ci în funcție de Greenwich. Evident, cu această funcție, trebuie să salvați toate informațiile despre dată și oră pe care utilizatorul le vede, iar la ieșire, trebuie să vă adaptați la fusul orar al fiecărui utilizator (ideal, desigur):

echo gmdate ("Acum în Greenwich D M j H:i:s T Y")
?>

Ca rezultat, veți vedea ceva de genul acesta: Luni, 15 noiembrie, 18:52:45 GMT 2010". Desigur, veți avea o dată diferită afișată, dar într-un format similar. De asemenea, vă recomand cu tărie să intrați în director și să vă familiarizați cu alte elemente de dată și oră din PHP(Am dat doar o treime), din moment ce funcțiile date() și gmdate(). este cel mai simplu și cel mai mult drumul rapid obține data și oraîn aproape orice format.

Lucrul cu datele și orele în PHP este relativ ușor. Disponibilitatea este frumoasa un numar mare funcțiile face ca codul să nu fie atât de greoi (și în PHP 5.2 odată cu apariția DateTime și în 5.3 cu adăugarea claselor DateInterval și DatePeriod și a metodelor separate, lucrul cu date a devenit și mai ușor și mai convenabil). Deci, pentru a lucra cu o întâlnire... În primul rând, în orice caz, ar trebui să rețineți că:

  • aproape orice acțiune poate fi făcută în mai multe moduri;
  • tot codul este scris pentru demonstrații și exemple de lucru;
  • nu întotdeauna rezultatul alternativ propus poate fi potrivit atunci când se utilizează mai multe versiunea timpurie PHP (uneori mai ușor decât editarea unui cod de lucru de cu ani în urmă);

În PHP 5.3 pentru funcţionare corectă cu data pentru a evita erorile de standarde stricte. Astăzi, de regulă, această situație este luată în considerare fie în scripturi, fie în setările de găzduire.

PHP convertește marca temporală UNIX în data în formatul dat

Una dintre cele mai sarcini simple. Funcția utilizată: data($format, $time)
Trecem formatul datei ca prim parametru - consultați documentația pentru mai multe detalii (pentru „cunoscut pentru noi” 28.02.2012 15:43:59 ar trebui să folosească:
data("d.m.Y H:i:s", $ora)

PHP cum se ajunge la data de mâine/ieri

Și aici totul este simplu. Folosind funcția time(), obținem ora curentă în format UNIX Timestamp. Scădem (data de ieri) sau adăugăm (mâine) numărul necesar de secunde (86400 = 3600 * 24 - în zile) și obținem:
$acum = timp(); // nu este necesar
$ieri = ora()-3600*24;
$maine = ora()+3600*24;
$weekBefore = time() - 3600*24*7; // acum o saptamana
echo "Ieri: ",data ("d.m.Y", $ieri),"
Maine:",data("d.m.Y",$maine);

PHP cum să obțineți o întâlnire cu o anumită tură (X zile mai devreme/mai târziu)

Uneori trebuie să știți data, care va fi la câteva zile de cea specificată. De exemplu, utilizatorul a plătit pentru serviciu pe 11 februarie 2013 timp de 3 săptămâni. Informații de plată disponibile. Pana la ce data se plateste?

Când puteți „pur și simplu” să adăugați câteva zile și să obțineți 13 februarie, procedura nu provoacă dificultăți deosebite. Dar cum rămâne cu numărul diferit de zile dintr-o lună? Ce zici de anul bisect? Totul a fost deja inventat înaintea noastră - pentru a calcula data dintr-un interval cunoscut, vom folosi mktime

$plata = matrice("ziua"=>11,"luna"=>2,"anul"=>2013);
$toDate = mktime(0,0,0,$plata["luna"],$plata["ziua"]+3*7,$plata["anul"]);
echo date("d.m.Y", $toDate); // concluzie
// în PHP > 5.3 folosind DateInterval
date_default_timezone_set("Europa/Moscova");
$datetime = new DateTime(data());
$datetime->sub(new DateInterval("P7D")); // minus 7 zile

PHP cum se calculează diferența dintre date

S-ar părea că situatie simpla- există două date, numărați numărul de zile (luni și zile) dintre ele. Totuși, implementarea „manuală” va dura ceva timp și există șansa de a rata ceva (pentru interes sportiv – cei care vor să încerce pot lăsa codul în comentarii). PHP are o funcție încorporată date_diff pentru a calcula diferența dintre date, sau mai precis Datetime::diff
$datetime1 = new DateTime("2013-05-01");
$datetime2 = new DateTime("2013-01-01");
$interval = $datetime1->diff($datetime2);
echo $interval->format("%R%a zile după Anul Nou");

PHP convertește zilele DDD în X ani Y luni Z ani

Uneori doriți să afișați ora după un anumit eveniment. De exemplu, după ce înregistrarea a trecut. Pentru comoditate (3200 de zile spun puțin), percepțiile pot fi traduse în ani și luni folosind formatarea DateInterval::format
$registerDate = new DateTime("2009-03-03");
$azi = nou DataTime();
$interval = $azi->diff($registerDate);
echo „Din momentul înregistrării a trecut: „;
echo $interval->format("%a zile")."\n"; // numărul total de zile
ecou „sau”;
echo $interval->format("%m luni, %d zile"); // luni, zile

Traducere PHP de la dată la marcaj temporal - analiza date în format rus

Uneori este necesar să convertiți o dată într-un format care poate fi citit în formatul UNIX TIMESTAMP. Pentru a analiza o dată în formatul „2013-05-30 12:35” în componente (obțineți separat anul, luna, ziua), puteți utilizați funcția date_parse. Pentru a traduce direct în marcaj temporal Unix - puteți utiliza strtotime (precum și variante precum „acum”, „+1 zi”, „joia viitoare” - php.net/manual/en/datetime.formats.php):
echo strtotime("2013-05-30");
print_r(data_parse("2013-05-30 12:35"));

Cu toate acestea, pentru Rusia, formatul mai familiar este ZZ.LL.AAAA. Puteți, desigur, să împărțiți data după caracterul punct, să obțineți ziua, luna, anul și să utilizați funcția mktime pentru a afla valoarea UNIX TIMESTAMP corespunzătoare. PHP5.3 a introdus funcția date_parse_from_format, căruia i se poate trece un șir de format. Și pentru PHP5.2, am folosit strptime (despre care, după cum sa dovedit, nu toată lumea știe, poate pentru că pur și simplu nu este implementat pentru Windows: Această funcție nu este implementată pe platformele Windows):

$date = "05/30/2013 12:35 PM";
$format = "d.m.Y H:i";
print_r(data_parse_from_format($format,$data));
// Opțiune alternativă pentru PHP5.2
$format = "%d.%m.%Y %H:%M"; // diferit de cel folosit în funcția de dată
$d = strptime($data, $format);
$newDate = mktime($d["tm_hour"], $d["tm_min"], $d["tm_sec"],
$d["tm_mon"]+1, $d["tm_mday"], $d["tm_year"]+1900); // tm_mon 0-11, tm_year 1900
echo $newDate;

În plus, funcția strptime are unele particularități - luna este deplasată cu unu (ianuarie - 0), iar anul este numărul de ani de la 1900, adică. pentru 2013 $d['tm_year'] va fi 113.

Legături și Informatii utile:
Funcții PHP dateTime http://www.php.net/manual/en/ref.datetime.php - funcții datetime
Clasa PHP DateTime http://www.php.net/manual/en/class.datetime.php
PHP date_diff http://www.php.net/manual/en/function.date-diff.php
PHP strftime http://ru2.php.net/manual/en/function.strftime.php
PHP date_parse_from_format http://ru2.php.net/manual/en/function.date-parse-from-format.php

Să ne uităm la o bucată de cod dintr-o pagină web reală și să creăm primul nostru script php, și anume, să afișăm data și ora curentă pe site-ul nostru. Acest scenariu este folosit pe site-uri destul de des și cred că va fi util multora.

Să creăm un alt fișier php și să denumim acest fișier time.php . am studiat mai devreme, dacă ai uitat, repetă.

Așa că am creat fișierul time.php și am plasat acest fișier în folderul myphp creat anterior la . Am studiat acest subiect în lecție

Deschideți codul fișierului time.php și între etichete și scrie urmatorul cod, Listarea 1:

Listarea 1.

Astăzi:

ora curentă

Lansăm server local, introducem bara de adresa adresa browserului http://localhost/myphp/time.phpși apăsați Enter. Și vedem această imagine:

Vă atrag atenția asupra faptului că acest caz curent timpul serverului, acestea. dacă, de exemplu, serverul pe care „locuiește” site-ul tău se află într-o altă țară și ora actuală diferă de Moscova, atunci valoarea oră afișată va diferi și de Moscova.

Să defalcăm codul Listare 1. Obișnuit etichete de text "Astăzi" și " ora curentă„ nu sunt procesate de preprocesorul PHP și sunt afișate ca „este”. În loc de aceste intrări, puteți scrie orice text, de exemplu, doar data sau Timp etc.

Și aici este codul php inclus în descriptoriînainte de a fi dat browserului, este procesat de PHP.

După cum probabil ați înțeles deja funcția de dată în PHP responsabil pentru afișarea datei și orei. LA parantezele sunt specificate valorile de afișare a datei și orei. Există o mulțime de astfel de valori în PHP și vom dedica următoarea lecție separată acestei analize și studiului tuturor valorilor posibile.

Declarația ecou - se traduce ca retrage, în acest caz înseamnă să afișați pe ecranul monitorului Datași Timpul serverului.

Același rezultat (afișarea browserului) poate fi obținut prin plasarea întregului script în interiorul etichetelor PHP. Vedea Lista 2:

Lista 2.

echo „Astăzi:” ;
data ecou(" j F Y ");
ecou "Ora curentă";
echo date("H:i:s");
?>

Toate elemente de text destinate ieșirii trebuie să fie cuprinse între ghilimele. Linii de text poate fi închis atât în ​​single cât și în ghilimele duble care este diferența vom vorbi mai târziu. Intrări:

ecou „Astăzi”;

ecou „Astăzi”;

sunt complet echivalente și se vor afișa în același mod.

Caracterul spațiu înainte de ghilimele de închidere este folosit pentru a separa rezultatul funcției de dată de textul din jur. Toate comenzile din PHP sunt întotdeauna separate prin punct și virgulă.

Pentru a afișa data și ora pe site, înlocuiți codul Listarea 1 sau Lista 2în Locul potrivit pagina dvs. web. Pentru a da inscripțiilor (Data și Ora) un stil general pentru designul site-ului, puteți utiliza.

P.S. Vă reamintesc că fișierul în care plasați inserții PHP trebuie să aibă extensia .php și, în plus, găzduirea pe care „locuiește” site-ul dvs. trebuie să suporte PHP (azi, asta este aproape tot

JavaScript este blocat în browserul dvs. Permiteți JavaScript pentru ca acest site să funcționeze!

Reprezentarea datei și orei

În sistemele distribuite precum Internetul, timpul este esențial. Din cauza unei ușoare discrepanțe ceasul sistemului un jucător Forex poate pierde zeci de mii de dolari în câteva minute; sistemul de business intelligence va face o greșeală în realizarea unei previziuni; Serverele NNTP își vor pierde Informații importante, dorit de utilizator etc.

PHP conține multe funcții pentru a lucra cu date și ore. Cele mai utilizate sunt:

  • timp()- returnează timpul absolut curent. Acest număr este egal cu numărul de secunde care au trecut de la miezul nopții, 1 ianuarie 1970 (de la începutul epocii UNIX).
  • getdate()- citește informații despre dată și oră. se intoarce matrice asociativă A care conține informații pentru ora specificată sau ora curentă (implicit). Matricea conține următoarele elemente:

    Exemplul 1

    Folosind getdate() $val) echo "$key = $val
    "; ecou"
    Astăzi: $d.$d.$d"; ?>

    EXEMPLU 1 REZULTAT:

    Secunde = 21 minute = 4 ore = 12 mday = 10 wday = 4 luni = 11 year = 2005 yday = 313 weekday = joi luna = noiembrie 0 = 1131613461 Astăzi: 11/10/2005

  • Data()- formatarea datei și orei. Argumente: șir de format și timp absolut. Al doilea argument este opțional. Returnează un șir cu data dată sau curentă în formatul specificat. Șirul de format poate conține următoarele coduri:
    A
    ADesemnarea „AM” sau „PM” este inclusă
    dZiua lunii (01-31)
    DNumele prescurtat al zilei săptămânii (trei litere)
    FNumele întregii luni
    gOre (format de 12 ore fără zerouri la început)
    GOre (format de 24 de ore fără zerouri la început)
    hCeas (format 12 ore)
    HCeas (format 24 de ore)
    iMinute (00-59)
    jZiua lunii fără zerouri de început (1-31)
    lNumele complet al zilei săptămânii
    LSteagul anului bisect (0 sau 1)
    mLuna (01-12)
    MNumele prescurtat al lunii (trei litere)
    nLuna (1-12)
    sSecunde (00-59)
    tNumărul de zile dintr-o lună dată (de la 28 la 31)
    UTimp absolut
    w
    yAn (două cifre)
    YAn (patru cifre)
    zZiua anului (0-365)
    ZDecalaj fus orar în secunde (-43200 la 43200)

    Orice altă informație inclusă în șirul de format va fi inserată în șirul returnat. Dacă caracterele care sunt ele însele coduri de format urmează să fie adăugate la șirul de format, acestea trebuie să fie precedate de o bară oblică inversă „\”. Caracterele care devin coduri de format atunci când sunt atașate cu o bară oblică inversă trebuie să fie precedate de două bare oblice. De exemplu, dacă doriți să adăugați „n” la un șir, ar trebui să tastați „\\n” deoarece „\n” este un caracter newline.

    Exemplul 2

    Folosind data()

    EXEMPLUL 2 REZULTAT:

    Astăzi: 10.11.05 13:03

  • mktime()- returnează ora absolută, care poate fi folosită apoi cu funcțiile date() sau getdate(). Preia până la șase argumente întregi în următoarea ordine:

    Ceas
    minute
    secunde
    lună
    ziua lunii
    an

    Exemplul 3

    Folosind mktime()

    EXEMPLUL 3 REZULTAT:

  • data verificarii()- verificarea corectitudinii datei. Argumente: luna, zi, an. Returnează adevărat dacă data este validă, de exemplu.
    lună - un număr întreg de la 1 la 12;
    zi - un număr întreg care nu depășește numărul total de zile din luna dată. În același timp, anii bisecți sunt procesați corect;
    anul este un număr întreg de la 1 la 32767.

    De exemplu:

    Dacă (!checkdate($lună, 1, $an)) ( $d = getdate(); $lună = $d; $an = $d; )

    Atenţie! Data poate fi în intervalul valid, dar alte funcții de dată nu vor accepta această valoare. Astfel, nu puteți utiliza mktime() pentru ani înainte de 1902 și ar trebui să îl utilizați cu atenție și pentru ani înainte de 1970.

  • strftime()- formarea datei și orei locale. Argumente: șir de format și timp absolut. Al doilea argument este opțional. Returnează un șir cu data dată sau curentă în formatul specificat. În acest caz, numele lunilor și zilelor săptămânii sunt extrase din localitatea selectată cu ajutorul funcției. Șirul de format poate conține următoarele coduri:
    %AAbreviere pentru ziua săptămânii
    %ANumele complet al zilei săptămânii
    %bNumele lunii prescurtat
    %BNumele întregii luni
    %cFormatul de dată și oră preferat
    %CNumărul secolului
    %dZiua lunii (1-31)
    %DLa fel ca %m/%d/%y
    %eLuna (1-12)
    %hLa fel ca %b
    %HCeas (format 24 de ore)
    %ICeas (format 12 ore)
    %jZiua anului (0-365)
    %mLuna (1-12)
    %Mminute
    %nCaracter Newline
    %psimbolul „am” sau „pm” inclus
    %rOra folosind notația a.m./p.m
    %ROra în format de 24 de ore
    %SSecunde (00-59)
    %tCaracter tabulator
    %TLa fel ca %H:%M:%S
    %uNumărul zilei săptămânii (1 - luni, 7 - duminică)
    %UNumărul săptămânii. Numărătoarea inversă începe în prima duminică a anului
    %VNumărul săptămânii conform ISO 8601:1988. Prima săptămână trebuie să aibă cel puțin patru zile, iar luni este considerată prima zi
    %WNumărul săptămânii. Numărătoarea inversă începe în prima zi de luni a anului
    %wNumărul zilei săptămânii (0 - duminică, 6 - sâmbătă)
    %XFormat preferat de dată fără oră
    %XFormatul de oră preferat fără dată
    %yAn (două cifre)
    %YAn (patru cifre)
    %ZFus orar (nume sau abreviere)
    %% Simbolul „%”

    Orice altă informație inclusă în șirul de format va fi inserată în șirul returnat.

Printre diferitele sarcini de programare, diferite manipulări cu valori de dată și oră sunt destul de comune. rar sistem automatizat, baza de date poate face fără stocarea informațiilor despre timpul unui anumit proces. Pe lângă simpla adăugare a unei date într-o înregistrare a bazei de date sau afișarea acelei date, există multe sarcini pentru afișarea acestor date în diferite forme, verificând dacă ora curentă se potrivește cu setați cronometrul, calculând timpul dintre două date și multe altele.

Pentru confortul lucrului cu date, fiecare limbaj de programare are propriile tipuri de date speciale pentru stocarea valorilor datei și orei. Cel mai adesea asta valoare numerică, fie număr întreg, fie virgulă mobilă.

LA Funcționează PHP cu o dată întâlnește cel mai adesea UNIX TIMESTAMP. Aici timpul este stocat ca un număr întreg. Calculul timpului începe la 1 ianuarie 1970. Prin urmare, de exemplu, data și ora 12/11/2014 7:40:00 PM ar fi reprezentate de numărul 1418316000. Această cifră arată câte secunde au trecut de la data zero de 1 ianuarie 1970, numită Epoca Unix .

Un exemplu de pagină php care oferă capacități de conversie a datelor este prezentat pe site în secțiunea de programe prin programul „Conversie format dată și oră”. Aici puteți forma data dorită în format UNIX TIMESTAMP, precum și aduceți acest format într-o formă standard, care poate fi citită de om.

Obținerea orei și datei curente în PHP

Pentru a obține ora actuală a serverului, utilizați funcția

int time(void)

care va returna doar valoarea în format de marcaj temporal Unix.

echotime(); // afișează ora curentă în format de marcaj temporal Unix

La prima vedere, acesta nu este un format foarte convenabil pentru o persoană, dar, după cum știți, cu cât reprezentarea datelor este mai simplă, cu atât procesarea acestor valori de către un computer este mai rapidă. De asemenea, stocarea unui număr într-o bază de date este mult mai economică decât oricare format special. De asemenea, PHP funcționează la fel de-a lungul timpului atât pe Unix, cât și Platforma Windows, ceea ce face posibilă utilizarea codului pe oricare dintre aceste platforme.

Conversie în format PHP datetime

Cel mai simplu mecanism pentru conversia unei valori numerice a datei în valori mai lizibile este oferit de funcția:

matrice getdate()

Returnează o matrice asociativă care conține informații despre dată. Dacă parametrul de marcaj temporal nu este specificat, vor fi returnate informațiile despre ora curentă. Această matrice conține următoarele valori:

Matricea rezultată vă permite să afișați valorile în forma dorită:

$date = 1418372345;
$date_mas = getdate($data);
echo $date_mas["mday"] . " . " . $date_mas["lună"] . " . " . $date_mas[„an”]; // 12.12.2014


De asemenea, puteți utiliza funcția pentru a converti formatul de dată și oră:

șir data(șir $șablon [, int $unix_timestamp])

Este conceput pentru a introduce data actuală a marcajului de timp Unix formatul dorit. Parametrul șir $template specifică formatul de ieșire. Cu parametrul $unix_timestamp, puteți specifica cu ce valoare de timp să lucrați. Este opțional, așa că dacă nu o specificați, se vor folosi data și ora curente.

Formatul este dat de următoarele valori:

A„înainte” și „după” amiază: „am” sau „pm”
Aînainte și după amiază litere mari: "AM sau PM"
dziua lunii din 2 cifre (dacă este mai mică de 10, primul zero) (de la 01 la 31)
Dziua saptamanii in 3 litere. De exemplu, „Luni” (luni)
jziua lunii, 1-2 cifre fără zerouri inițiale (de la 1 la 31)
Fnumele lunii. De exemplu, „ianuarie”
horă, format de 12 ore (de la 01 la 12)
Horă, format de 24 de ore (de la 00 la 23)
goră, format de 12 ore fără zerouri (de la 1 la 12)
Goră, format de 24 de ore fără zerouri (de la 0 la 23)
iminute (de la 00 la 59)
I (majusculă i)1 dacă trecerea la ora de vara, altfel 0
L1 dacă anul este un an bisect sau 0 dacă nu este un an bisect
Bora în formatul de timp pe Internet ( sistem alternativ ora din zi) (de la 000 la 999)
Tfusul orar al computerului. De exemplu, MDT
l (L minuscule)zi a săptămânii. De exemplu, „luni”
mlună, două cifre cu zerouri (de la 01 la 12)
nlună, una sau două cifre fără zero (de la 1 la 12)
Mnumele prescurtat al lunii. De exemplu, „Ian”
tnumărul de zile din luna specificată (de la 28 la 31)
ssecunde (de la 0 la 59)
SSufixul ordinal englezesc din două litere ("st", "nd", "rd" sau "th")
Unumăr întreg de secunde de la începutul epocii UNIX
yan, digital, 2 cifre (14)
Yan, digital, 4 cifre (2014)
znumărul ordinal al zilei din an (de la 0 la 365)
Zdecalaj fus orar în secunde (-43200 până la 43200)
Nnumăr de serie zile ale săptămânii de la 1 (luni) la 7 (duminică) conform ISO-8601, (adăugat în versiuni PHP 5.1.0)
wnumărul ordinal al zilei săptămânii de la 0 (duminică) la 6 (sâmbătă)
Wnumărul de serie al săptămânii din an în conformitate cu standardul ISO-8601; săptămânile încep luni (adăugat în PHP 4.1.0)
onumărul de an în conformitate cu standardul ISO-8601. Are aceeași semnificație cu Y, cu excepția cazului în care numărul de săptămână ISO (W) aparține anului precedent sau următor; atunci se va folosi anul acelei săptămâni. (adăugat în PHP 5.1.0)
ecod de fus orar. De exemplu: UTC, GMT, Atlantic/Azore (adăugat în PHP 5.1.0)
Odiferență față de Greenwich Mean Time, în ore. De exemplu: +0200
Pdiferență față de Greenwich Mean Time cu două puncte între ore și minute. De exemplu: +02:00 (adăugat în PHP 5.1.3)
cdata în format ISO 8601. De exemplu, 2014-12-12T15:19:21+00:00 (adăugat în PHP 5)
rdata în formatul » RFC 2822. De exemplu: Joi, 21 Dec 2000 16:01:07 +0200
Unumărul de secunde de la începutul epocii Unix (Epoca Unix, 1 ianuarie 1970 00:00:00 GMT)

După cum puteți vedea din listă, puteți obține o mulțime de date utile cu această funcție. De exemplu:

$date = 1418372345; // data și ora inițială 12/12/2014 11:19:05

echo date("d.m.Y" , $date); // 12/12/2014 (data)
echo date("H:i:s" , $data); // 11:19:05 (ora)
echo date("H:i" , $data); // 11:19 (ora)
echo date("t" , $data); // 31 (numărul de zile dintr-o lună)
echo date("z" , $data); // 345 (numărul de serie al zilei din an)
echo date("l dS \of F Y h:i:s A" , $data); // Vineri, 12 decembrie 2014, ora 11:19:05

Alte caractere incluse în model vor fi afișate așa cum sunt în șir. Dacă trebuie să introduceți un caracter care este utilizat ca cod de format în funcție, un caracter „\” este inserat în fața lor. Pentru valoarea „\n” (caracterul de salt linie nouă), trebuie să specificați „\\n”. Astfel, puteți scoate un mesaj întreg care conține informații despre dată și oră:

data ecou( „Astăzi este ziua z a anului Y”, $data); // Astăzi este a 345-a zi a anului 2014

Convertiți data și ora în format de marcaj de timp

Pentru a inversa conversia datei de la format standard funcția se aplică valorii numerice a marcajului de timp:

int mktime(]]]]]])

Funcția mktime() returnează o valoare de timp Unix corespunzătoare datei și orei date de argumente. De exemplu:

$my_date = mktime(10, 30, 0, 12, 12, 2014);

Ar trebui să fiți atenți la ordinea argumentelor funcției: ore, minute, secunde, lună, zi, an.

Cu exceptia formare simplă valorile datei într-o marca temporală, funcția mktime() poate fi folosită pentru a face aritmetică cu date. Pentru a face acest lucru, puteți introduce pur și simplu argumentele necesare. De exemplu, dacă specificați luna 14, atunci în valoarea finală, luna va fi a 2-a, iar valoarea anului va crește cu unu:

$my_day = 12;
$my_month = 12;
$my_year = 2014;

$new_date = mktime(0, 0, 0, $my_month + 5, $my_day, $my_year);

echo date("d.m.Y" , $new_date); // 05/12/2015 (data)

Puteți face același lucru cu alți parametri.

Validați data în PHP

Când lucrați cu date, mai ales când se formează o dată folosind funcția mktime() propusă mai sus, este necesar să se țină cont de corectitudinea datei introduse. Pentru a face acest lucru, PHP folosește următoarea funcție:

bool data de verificare (int luna, int zi, int an)

Returnează adevărat dacă data dată de argumente este corectă; altfel returnează false. Data este considerată corectă dacă:

An în intervalul de la 1 la 32767;

Lună în intervalul de la 1 la 12;

Ziua pentru luna dată, ținând cont de anul bisect, este corectă.

Exemplu de validare a datei:

$my_day = 32;
$my_month = 12;
$my_year = 2014;

dacă (!checkdate($my_month, $my_day, $my_year))
ecou „Eroare: dată nevalidă”;

  • Serghei Savenkov

    un fel de recenzie „rare”... parcă s-ar grăbi undeva