[PHP] Argument funkcji date()

0

Witam!

Dlaczego wynikiem tego oto kodu :

echo date("Y-m-d", 1067119200).'<br/>';
echo date("Y-m-d", 1067205600);

jest:

2003-10-26
2003-10-26

Przecież podaje funkcji date() dwa różne argumenty?

0

dlatego:

echo date("Y-m-d H:i", 1067119200);
echo date("Y-m-d H:i", 1067205600)
0

Kod:

echo date("Y-m-d H:i", 1067119200).''<br/>;
echo date("Y-m-d H:i", 1067205600);

wyświetla:

2003-10-26 00:00
2003-10-26 23:00

I dalej tego nie rozumiem bo przecież
1067205600-1067119200=86400

czyli 24 godziny a wieć doba. A 00:00 i 23:00 to różnica 23 godzin. Jak to z tym jest?

0

heh, faktycznie nie zauważyłem ;)

meta@linux-meta-gp:~> php -r 'echo date("Y-m-d H:i:s:u", 1067119200+(0*3600)); echo"\n";'
2003-10-26 00:00:00:000000
meta@linux-meta-gp:~> php -r 'echo date("Y-m-d H:i:s:u", 1067119200+(1*3600)); echo"\n";'
2003-10-26 01:00:00:000000
meta@linux-meta-gp:~> php -r 'echo date("Y-m-d H:i:s:u", 1067119200+(2*3600)); echo"\n";'
2003-10-26 02:00:00:000000
meta@linux-meta-gp:~> php -r 'echo date("Y-m-d H:i:s:u", 1067119200+(3*3600)); echo"\n";'
2003-10-26 02:00:00:000000
meta@linux-meta-gp:~> php -r 'echo date("Y-m-d H:i:s:u", 1067119200+(4*3600)); echo"\n";'
2003-10-26 03:00:00:000000

Między drugą a trzecią nad ranem jest ekstra godzina! Yay!

Tak sobie myślę - nie jest to moment zmiany czasu? Jakoś koło października chyba zima się zaczyna?

http://pl.php.net/manual/en/function.date.php napisał(a)

Example #3 date() and mktime() example

<?php $tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y")); $lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); $nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1); ?>
Note: This can be more reliable than simply adding or subtracting the number of seconds in a day or month to a timestamp because of daylight saving time.
0

Teraz rozumiem. Faktycznie to zmiana czasu jest powodem wyświetlania takich wyników. Do generowania kolejnych dat bardziej jest użyteczny właśnie kod:

<?php
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>

Dziękuje za pomoc!

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1