Forum und email

mktime

(PHP 4, PHP 5)

mktime — Geef UNIX timestamp voor een date

Beschrijving

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

Waarschuwing: Let op de vreemde volgorde van argumenten, die verschilt van de volgorde van argumenten in een normale UNIX mktime() call en zich er niet echt voor leent om parameters van rechts naar links weg te laten (zie beneden). Het is een vrij veel voorkomende vergissing om deze waarden door elkaar te gooien in een script.

Retourneert de Unix timestamp overeenkomend met de argumenten die meegegeven zijn. Deze timestamp is een long integer die het aantal seconden bevat tussen de Unix Epoch (January 1 1970) en de gespecificeerde time.

Argumenten kunnen weg worden gelaten in volgorde van rechts naar links. Argumenten die weg worden gelaten op deze manier zullen geset worden naar de huidige waarde volgens de local date en time.

Is_dst kan naar 1 gezet worden als de tijd tijdens zomertijd valt, of 0 wannneer dat niet zo is, of -1 (default) als het niet bekend is of de tijd zich in zomertijd bevindt. Als deze parameter niet wordt meegegeven probeert PHP het zelf uit te zoeken wat kan leiden tot niet verwachte, maar wel correcte resultaten.

Note: Is_dst was toegevoegd in 3.0.10.

mktime() is bruikbaar om met datums te rekenen of datums te valideren, omdat het automatisch de juiste waarde voor out-of-range input calculeert. Bijvoorbeeld, elk van de volgende regels produceert de string "Jan-01-1998".

Example#1 mktime() voorbeeld

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));
Year mag zowel een twee als vier cijferige waarde zijn, met waardes tussen 0-69 mapping naar 2000-2069 en 70-99 naar 1970-1999 (op systemen waar time_t een 32bit signed integer is, zoals tegenwoordig gewoonlijk, is de correcte range voor year ergens tussen 1902 en 2037).

De laatste dag van elke willekeurige maand kan uitgedrukt worden als de "0" dag van de volgende maand, niet de -1 dag. Beide van onderstaande voorbeelden produceert de string "The last day in Feb 2000 is: 29".

Example#2 Laatste dag van volgende maand

$laatste = mktime (0,0,0,3,0,2000);
echo strftime ("De laatste dag in februari 2000 is: %d", $laatste);
     
$laaatste = mktime (0,0,0,4,-31,2000);
echo strftime ("De laatste dag in februari 2000 is: %d", $laatste);

Data waarbij year, month en day gelijk zijn aan nul worden als ongeldig beschouwd.

Zie ook date() en time().