Forum und email
mktime

mktime

(PHP 3, PHP 4, PHP 5)

mktime -- Vrací UNIXové časové razítko pro datum/čas

Popis

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

Varování: Mějte na paměti podivné pořadí argumentů, které se liší od pořadí argumentů v běžném UNIXovém volání mktime() a které se příliš nehodí k vynechávání parametrů zprava doleva (viz níže). Je častou chybou míchat ve skriptu tyto hodnoty.

Vrací UNIXové časové razítko odpovídající daným argumentům. Toto časové razítko je typu "long integer" a odpovídá počtu sekund mezi Unix Epoch (1.1.1970) a specifikovaným časem.

Argumenty mohou být vynechávány zprava doleva; každý vynechaný argument bude nastaven na aktuální hodnotu podle místního data a času.

is_dst může být 1, patří-li daný čas do doby platnosti letního času, 0, pokud nepatří, anebo -1 (implicitní hodnota), nelze-li zjistit, zda daný čas patří do období letního času (v tomto případě se PHP pokusí tuto hodnotu dosadit; to může způsobit neočekávané - ale nikoli chybné - výsledky).

Poznámka: Parametr is_dst byl přidán v PHP 3.0.10.

Funkce mktime() je užitečná pro aritmetiku a validaci časových údajů, neboť automaticky vypočítá správnou hodnotu pro vstupní data mimo povolený rozsah. Například každý z následujících řádků vypíše "Jan-01-1998".

Příklad 1. Příklad - mktime()

<?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));
?>
Year může být hodnota se dvěma nebo čtyřmi číslicemi, s hodnotami 0-69 mapovanými na 2000-2069 a 70-99 na 1970-1999 (na systémech, kde time_t je 32bitové celé číslo se znaménkem, jak je dnes obvyklé, budou platné hodnoty pro year někde mezi 1901 a 2038).

Windows: Záporné časové značky nejsou podporovány v žádné známé verzi Windows. Platné rozmezí roků je proto pouze 1970 až 2038.

Poslední den daného měsíce může být vyjádřen jako den "0" měsíce příštího, nikoliv den -1. Oba následující příklady vypíší řetězec "The last day in Feb 2000 is: 29".

Příklad 2. Poslední den měsíce

<?php
$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);
?>

Datum s rokem, měsícem, a dnem rovnými nule je považováno za neplatné (odpovídalo by 30.11.1999, což je poněkud podivné chování).

Viz také date() a time().