while( $date<=$dateTo ){
echo $date."<br>";
$date = date("Y-m-d",($date));
// Some code goes here
$date=strtotime($date) + 86400;
}
Pokud zadam rozmezi datumu 10/01/2017 - 11/16/2017 skript se zastavi na
1509314400
2017-10-29
Jine rozmezi datumu funguje normalne :/ Vubec nemam poneti kde je chyba.
Samotný unixový timestamp nenese informace o timezone a ignoruje přestupné sekundy. A tím sis naběhl (ve tvém případě nejspíš přechod CET/CEST). Použij timezone bez těchto věcí nebo použij nějakou pokročilejší knihovnu pro práci s časem.
Dekuji! Uz to funguje.
Doplním, že Tvoj príklad je založený na chybnom predpoklade, že deň má 24 hodín. Niektoré dni bohužiaľ prechodom medzi letným a zimným časom majú 25 hodín a niektoré zase 23 hodín. Takže ak začneš s nejakým náhodným časom (napr. vstup od užívateľa, alebo výstup funkcie time()), pripočítaš ku nemu 24 hodín, a čakáš, že budeš na ďalšom dni, tak to nie vždy naozaj musí takto dopadnúť. Niekedy tak skončíš v tom istom dni (ak mal 25 hodín), a niekedy zase skončíš o dva dni ďalej (ak mal 23 hodín).
Než dávať zakaždým pozor na tieto záludnosti, je lepšie nechytračiť a použiť knižničné funkcie na manipuláciu dátumov a časov určené (http://php.net/manual/en/datetime.add.php).