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.