mktime

(PHP 3, PHP 4 , PHP 5)

mktime -- Citește valoarea UNIX timestamp pentru o dată

Descriere

int mktime ( int hour, int minute, int second, int month, int day, int year [, int is_dst])

Atenție: Observați ordinea ciudată a argumentelor, care diferă de ordinea argumentelor într-un apel normal al funcției UNIX mktime(); în cazul în care această ordine nu este respectată vor fi furnizate rezultate aleatoare (vezi mai jos). Acest tip de eroare este una comună.

Returează valoarea UNIX timestamp corespunzătoare argumentelor. Acest timestamp este un întreg lung (long integer) care conține numărul de secunde între începutul Epocii UNIX (1 ianuarie 1970) și timpul specificat.

Se poate renunța la argumente începând de la dreapta la stânga; orice argument astfel omis va fi setat la valoarea curentă în conformitate cu data și timpul locale.

Is_dst poate fi setat la 1 dacă timpul este în perioada în care este activă ora de iarnă, 0 în caz contrar, sau -1 (implicit) în caz că nu se știe.

Notã: Is_dst a fost adăugat în 3.0.10.

Funcția mktime() este folositoare pentru efectuarea de calcule și validări ale datei, și va produce rezultate corecte chiar în cazul unor invalide. De exemplu, fiecare dintre următoarele linii va produce șirul de caractere "Jan-01-1998".

Exemplu 1. mktime() example

echo date ("M-d-Y", mktime (0,0,0,12,32,1997));
echo date ("M-d-Y", mktime (0,0,0,13,1,1997));
echo date ("M-d-Y", mktime (0,0,0,1,1,1998));
echo date ("M-d-Y", mktime (0,0,0,1,1,98));
Parametrul year poate fi format din două sau patru cifre, cu valori între 0-69 pentru anii 2000-2069 și 70-99 pentru anii 1970-1999 (pentru sistemele pe care time_t este reprezentat ca un întreg cu semn pe 32 de biți, cum sunt cele de acum, intervalul valid pentru year este undeva între 1902 și 2037).

Ultima zi a unei luni va fi exprimată ca ziua "0" a lunii următoare nu ca ziua -1. Ambele exemple de mai jos vor produce același rezultat: șirul de caractere "The last day in Feb 2000 is: 29".

Exemplu 2. Ultima zi din lună

$lastday = mktime (0,0,0,3,0,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);
     
$lastday = mktime (0,0,0,4,-31,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);

Datele cu anul, luna și ziua egale cu zero sunt considerate ilegale (dealtfel vor produce rezultatul 30.11.1999, ceea ce reprezintă un comportament ciudat).

Vezi, de asemenea, date() și time().