mktime

mktime -- Oblicza 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 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 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 .

Notatka : 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( )




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

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 :

Przykład 2 . Ostatni dzień miesiąca

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