Translează aproape orice descriere textuală în limba engleză a datei și orei într-un timestamp Unix

# strtotime

(PHP 4, PHP 5, PHP 7)

strtotime — Translează aproape orice descriere textuală în limba engleză a datei și orei într-un timestamp Unix

### Descrierea

strtotime ( string `$time` [, int `$now` = time() ] ) : int

Funcția așteaptă un șir de caractere conținând un format de dată engleză și încearcă să transforme acest format într-un timestamp Unix (numărul de secunde de la 1 Ianuarie 1970 00:00:00 UTC), în raport cu timestamp-ul dat în parametrul `now`, sau cu ora curentă dacă parametrul `now` nu este furnizat.

Fiecare parametru al acestei funcții utilizează fusul orar implicit, afară de cazul când fusul orar este specificat în acel parametru. Fiți atenți să nu utilizați diferite fusuri orare în fiecare parametru, afară de cazul când anume așa se intenționează. Vedeți date_default_timezone_get() pentru diferite metode de a defini fusul orar implicit.

### Parametri

`time`

  Un șir dată/oră. Formatele valide sunt explicate în Formatele datelor și orelor.

`now`

  Timestamp-ul care este utilizat ca bază pentru calcularea datelor relative.

### Valorile întoarse

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

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

### Istoricul schimbărilor

Versiune | Descriere
--- | ---
5.3.0 | Anterior versiunii PHP 5.3.0, formatele de timp relative transmise prin argumentul `time` al funcției strtotime(), cum ar fi this week, previous week, last week și next week erau interpretate ca perioadă de 7 zile relativ cu data/ora curentă, și nu ca o perioadă de o săptămână de la Monday până la Sunday.
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.

### Exemple

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);
}
?>`

### Note

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

> Anterior versiunii PHP 5.1.0, 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.

> Pentru versiunile PHP pe 64 de biți domeniul valid a unui timestamp este practic infinit, deoarece pe 64 de biți se pot reprezenta aproximativ 293 milioane de ani în ambele direcții.

> Notă:

> Datele în formatul m/d/y sau d-m-y sunt disambiguate analizând separatorul dintre deferite componente: dacă separatorul este slash (/), atunci este utilizat formatul American m/d/y; iar dacă separatorul este liniuța (-) sau punctul (.), atunci este utilizat formatul European d-m-y. Însă dacă anul e furnizat în format cu două cifre și separatorul este liniuța (-), atunci șirul cu data va fi interpretat ca y-m-d.

> Pentru a evita o potențială ambiguitate, cel mai bine este de a utiliza date în format ISO 8601 (YYYY-MM-DD) sau DateTime::createFromFormat() atunci când este posibil.

> Notă:

> Utilizarea acestei funcții pentru operații matematice nu este recomandabilă. Este mai bine de a utiliza DateTime::add() și DateTime::sub() în PHP 5.3 și ulterior, sau DateTime::modify() în PHP 5.2.

### A se vedea și

- Formatele datei și orei
- DateTime::createFromFormat() - Parses a time string according to a specified format
- checkdate() - Validează o dată Gregoriană
- strptime() - Parse a time/date generated with strftime