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