Funkcje daty i czasu
PHP Manual

mktime

(PHP 4, PHP 5)

mktimeOblicza uniksowy znacznik czasu dla podanej daty

Opis

int mktime ( int $godzina , int $minuta , int $sekunda , int $miesiąc , int $dzień , int $rok [, int $letni/zimowy ] )

Uwaga: Proszę zwrócić uwagę na dziwną kolejność argumentów, zupełnie odmienną od spotykanej w standardowym wywołaniu uniksowym mktime(); która w dodatku nie jest praktyczna przy opuszczaniu argumentów od prawej do lewej (patrz niżej). Częstym błędem w skryptach są pomyłki w kolejności tych argumentów.

Funkcja zwraca uniksowy znacznik czasu odpowiadający podanym argumentom. Znacznik czasu jest liczbą całkowitą długą (long integer) zawierającą liczbę sekund dzielącą uniksową Epokę (1 stycznia 1970) od podanego w argumentach czasu.

Argumenty mogą być opuszczane w kolejności od prawej do lewej. Za każdy pominięty argument będzie wówczas wstawiona aktualna wartość, zgodnie z lokalnym czasem/datą.

Argument letni/zimowy może być ustawiony na 1, jeśli to czas zimowy, lub 0 jeśli letni, lub -1 (domyślnie) jeśli niewiadomo, czy letni czy zimowy. Jeśli niewiadomo, PHP spróbuje ustalić to samodzielnie. Może to powodować nieoczekiwane (ale na pewno poprawne) wyniki.

Informacja:

Argument letni/zimowy dodano w PHP 3.0.10.

Funkcja mktime() przydaje się przy wykonywaniu arytmetyki dat i walidacji, gdyż automatycznie policzy właściwą wartość dla danych spoza przedziałów. Na przykład, każda poniższa linia wyświetli "Jan-01-1998".

Przykład #1 przykład 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));
?>
rok może być liczbą dwu lub czterocyfrową, przy czym wartości dwucyfrowe z przedziału 0-69 będą mapowane do 2000-2069, a z przedziału 70-99 do 1970-1999 (w systemach, w których time_t jest 32-bitową liczbą całkowitą ze znakiem, co jest obecnie najpopularniejszym rozwiązaniem, poprawny zakres argumentu rok zawiera się pomiędzy 1902 a 2037).

Informacja: Windows
Żadna znana wersja systemu Windows nie obsługuje ujemnych znaczników czasu. Z tego powodu zakres poprawnych dat zawiera się pomiędzy rokiem 1970 a 2038.

Ostatni dzień dowolnego miesiąca może być wyrażony jako zerowy dzień następnego miesiąca, ale nie jako -1 dzień. Obydwa poniższe przykłady wyświetlą "Ostatni dzień lutego 2000 to: 29".

Przykład #2 Ostatni dzień miesiąca

<?php
$ostatni 
mktime (0,0,0,3,0,2000);
echo 
strftime ("Ostatni dzień lutego 2000 to: %d"$ostatni);
     
$ostatni mktime (0,0,0,4,-31,2000);
echo 
strftime ("Ostatni dzień lutego 2000 to: %d"$ostatni);
?>

Data z rokiem, miesiącem i dniem równym zero jest niepoprawna (w przeciwnym razie oznaczałoby to 30.11.1999, co mogłoby powodować dziwne rezultaty).

Patrz także date() i time().


Funkcje daty i czasu
PHP Manual