Forum und email

mktime

(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.

Note: 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".

Example#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).

Note: 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".

Example#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().