(PHP 4, PHP 5)
strtotime — Translează aproape orice descriere textuală în limba engleză a datei și orei într-un timestamp Unix
Funcția așteaptă să i se furnizeze un șir de caractere conținând un format al datei US English și încearcă să transforme acest format într-un timestamp Unix (numărul de secunde de la 1 Ianuarie 1970 00:00:00 UTC), relativ la timestamp-ul parametrului now, sau ora curentă în cazul dacă now nu este furnizat.
Această funcție va utiliza variabila de mediu TZ (dacă este disponibilă) pentru a calcula timestamp-ul. Începând cu PHP 5.1.0 există metode mai facile de a defini fusul orar, care este utilizat de toate funcțiile de dată/oră. Acest proces este explicat în pagina cu descrierea funcției date_default_timezone_get().
Un șir dată/oră. Formatele valide sunt explicate în Formatele datelor și orelor.
Timestamp-ul care este utilizat ca bază pentru calcularea datelor relative.
Întoarce un timestamp în caz de succes, FALSE în caz contrar. Înainte de PHP 5.1.0, această funcție întorcea -1 în caz de eșec.
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()
Versiunea | Descriere |
---|---|
5.3.0 | Anterior versiunii PHP 5.3.0, 24:00 nu era un format valid și strtotime() întorcea FALSE. |
5.2.7 | În PHP 5 anterior versiunii 5.2.7, cererea de a obține o anumită zi a săptămânii într-o lună, unde această zi este prima zi a lunii, adăuga în mod incorect o săptămână la valoarea întoarsă. Aceasta a fost corectat în versiunea 5.2.7 și cele ulterioare. |
5.1.0 | Acum întoarce FALSE în caz de eșec, în loc de -1. |
5.1.0 | Acum generează erori ale zonei orare de tip E_STRICT și E_NOTICE. |
5.0.2 | În PHP 5 până la versiunea 5.0.2, "now" și alte momente de timp relative erau calculate greșit relativ la miezul nopții de astăzi. Aceasta diferă de alte versiuni, unde el este calculat corect relativ la ora curentă. |
5.0.0 | Microsecundele au început să fie permise, dar sunt ignorate. |
4.4.0 | În PHP de versiunile anterioare 4.4.0, "next" este calculat incorect ca +2. O soluție tipică pentru aceasta este utilizarea "+1". |
Example #1 Exemplu strtotime()
<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>
Example #2 Verificarea eșecului
<?php
$str = 'Nu e bine';
// înainte de PHP 5.1.0 ar fi trebuit de comparat cu -1, în loc de false
if (($timestamp = strtotime($str)) === false) {
echo "String-ul ($str) nu este corect";
} else {
echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>
Notă:
Dacă anul este specificat cu două cifre, valorile între 00-69 sunt interpretate ca 2000-2069, iar valorile între 70-99 ca 1970-1999. Vedeți notele de mai jos pentru posibilele diferențe pe sistemele pe 32 de biți (datele posibile pot să se încheie cu 2038-01-19 03:14:07)
Notă:
Domeniul valid al unui timestamp este de obicei de la Fri, 13 Dec 1901 20:45:54 UTC până la Tue, 19 Jan 2038 03:14:07 UTC. (Acestea sunt datele ce corespund valorilor minimă și maximă pentru un întreg pe 32 biți cu semn.) În plus, nu toate platformele susțin timestamp-uri negative, de aceea domeniul datelor poate fi limitat la valorile de după Epoca Unix. Aceasta înseamnă că de ex. datele de până la 1 Ianuarie 1970 nu vor fi valide în Windows, unele distributive Linux, și alte câteva sisteme de operare. Însă PHP 5.1.0 și versiunile ulterioare depășesc această limitare.