Forum und email

mktime

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

Example#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".

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