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?
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?
dlatego:
echo date("Y-m-d H:i", 1067119200);
echo date("Y-m-d H:i", 1067205600)
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?
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.
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