mktime

(PHP 3, PHP 4 , PHP 5)

mktime -- Získáť UNIXový timestamp pre dátum

Popis

int mktime ( [int hodina [, int minuta [, int sekunda [, int mesiac [, int den [, int rok [, int is_dst]]]]]]])

Varovanie: Všimnite si zvláštne poradie argumentov, ktoré sa líši od poradia argumetov v regulérnom UNIXovom mktime() volaní a ktorá sama sebe dobre neumožňuje vynechávanie parametrov z prava do ľava (porzri nižšie). Je bežnou chybou miešať tieto hodnoty v skripte.

Vracia Unixový timestamp zodpovedajúci daným argumentom. Timestamp je long integer, ktorý obsahuje počet sekúnd medzi Unixovou Epochou (1. Január 1970) a určeným časom.

Argumenty sa môžu vynechať v poradí z prava do ľava; všetky argumenty takto vynechané budú nastavené na aktuálnu hodnotu, ktorá zodpovedá miestnemu dátumu a času.

is_dst môže byť nastavený na 1 ak je čas počas letného času, 0 ak nie je, alebo -1 (default) ak nie je známe, či je čas v letnom čase alebo nie. Ak nie je známy, PHP sa ho samo pokúša zistiť. Toto môže spôsobiť neočakávané (ale nie nesprávne) výsledky.

Poznámka: is_dst bol pridaný v 3.0.10.

mktime() je užitočný pre aritmetizáciu dátumu a validáciu, nakoľko automaticky vypočíta správnu hodnotu pre vstup mimo-rozsah. Na príklad, každý z následujúcich riadkov vyprodukuje reťazec "Jan-01-1998".

Príklad 1. mktime() príklad

<?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));
?>
Rok môže byť dvoj- alebo štvor-ciferná hodnota, s hodnotami medzi 0-69 pre 2000-2069 a 70-99 pre 1970-1999 (na systémoch, kde time_t je 32bitový signed integer, čo je dnes najbežnejšie, je platný rozsah pre rok niekde medzi 1901 a 2038).

Windows: Žiadna záma verzia Windowsu nepodporuje záporné timestampy Preto rozsah platných rokov zahŕňa iba 1970 - 2038.

Posledný deň akéhokoľvek daného mesiaca je možné vyjadriť ako "0" deň ďalšieho mesiacah, nie -1 deň. Oba následujúce príklady vyprodukujú reťazec "The last day in Feb 2000 is: 29".

Príklad 2. Posledný deň budúceho mesiaca

<?php
$lastday
= mktime (0,0,0,3,0,2000);
echo
strftime ("Poslednym dnom vo Februari 2000 je: %d", $lastday);
     
$lastday = mktime (0,0,0,4,-31,2000);
echo
strftime ("Poslednym dnom vo Februari 2000 je: %d", $lastday);
?>

Dátum s rokom, mesiacom a dňom rovnými nule sa považuje za nelegálny (inak sa bude považovať ako 30.11.1999, čo by bolo zvláštne správanie).

Tiež pozri date() a time().