mktime
(PHP 4, PHP 5)
mktime — Egy idÅ‘pont Unix idÅ‘bélyegét állÃtja elÅ‘
LeÃrás
Figyelem! Vedd észre, hogy az argumentumok sorrendje nem éppen szokásos, mert különbözik a hagyományos Unix-os mktime()-étól, ezért nem igazán alkalmas arra, hogy lehagyd az utolsó néhány paramétert. Gyakori hiba scriptekben az argumentumok felcserélése.
Az argumentumok által megadott időpont UNIX időbélyegét adja. Ez tulajdonképpen egy nagy egész szám, a Unix Epoch (1970 Január 1. 00:00:00 GMT) és az adott idő közt eltelt másodpercek száma.
Jobbról elhagyhatsz argumentumokat; ezeket a php az aktuális helyi dátum és idő alapján pótolja.
Az is_dst paramétert állÃthatod 1-re, jelezve, hogy a nyári idÅ‘számÃtásban (DST) vagy, 0-ra, hogy nem, vagy -1-re (ez az alapértelmezett), ha nem tudod.
Egyes idÅ‘pontok érvényelenek abban az esetben, ha a PHP-t futtató rendszeren a DST be van állÃtva vagy az is_dst értéke 1. Ha a DST 2:00-kor kerül beállÃtásra, minden 2:00 és 3:00 közti idÅ‘ érvénytelen, ezért az mktime() függvény határozatlan (általában negatÃv) értéket ad vissza. Egyes operációs rendszerek (például Solaris 8) a DST-t éjfélkor kapcsolják be, ezért a 0:30 idÅ‘pont az elÅ‘zÅ‘ napi 23:30-nak számÃt, ha a DST be van kapcsolva.
Note: Az is_dst paraméter a 3.0.10.-es verzióban került a nyelvbe.
A mktime() függvény hasznos a dátumokkal való manipulálás, illetve dátumellenÅ‘rzés során, mivel automatikusan "korrekt" dátummá konvertálja a helytelenül megadott bemenetet.Példaul, az alábbi sorok mindegyike azt Ãrja ki, hogy "Jan-01-1998".
Example#1 mktime() példa
<?php
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));
?>
Note: Windows NegtÃv idÅ‘bélyegeket semmilyen ismert Windows rendszeren nem támogat. Emiatt az érvényes évek skálája 1970-tÅ‘l 2038-ig tart.
Adott hónap utolsó napját a következÅ‘ hónap "0." napjával fejezhetjük ki (NEM a -1.-kel!!!). Az alábbi két példa mind azt Ãrja ki, hogy "2000 februárjának utolsó napja: 29".
Example#2 Last day of next month
<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("2000 februárjának utolsó napja: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("2000 februárjának utolsó napja: %d", $lastday);
?>
Az olyan dátum, amelyben az év, hónap, és a nap is nulla, nem legális (máskülönben 1999. 11. 30.-ának kellene tekinteni, ami furcsa viselkedés lenne)
Lásd még a gmmktime(), date() és a time() függvényeket.