[ R-Byter @ 22.06.2006. 11:25 ] @
Vrlo cudan problem.
Naime, potrebno mi je bilo da u jednoj petlji provrtim sve datume izmedju pocetnog i krajnjeg koji zadam u formi.
Na formi ih zadajem u formatu d-m-Y.
E sad, oba konvertujem uz pomoc funkcije strtotime tako da za pocetni i krajnji datum imam vrednosti:

Code:

$EndDateCon = strtotime ($EndDateCon) + 86400;
$StartDateUnix = strtotime ($StartDateCon);
$EndDateUnix = $EndDateCon;


Petlja izgleda ovako:

Code:

for ($iii=$StartDateUnix; $iii<$EndDateUnix; $iii = $iii + 86400)
{
 ...
}


To mi je izgledalo sasvim dobro, listalo je sve datume u opsegu, sve dok nisam slucajno izabrao sledece datume:

Code:

$StartDateCon = "22-06-2005";
$EndDateCon = "22-06-2006";


Nema 26.marta 2006, tj.petlja ga preskace. Ide 25. pa 27?!?!?!?!?!?!

Probavao sam period oko mesec dana pre i posle tog datuma i onda se 26.mart pojavljuje, ali za ovako veliki opseg on nestaje.
Razmisljao sam da zovem Moldera i Skali da ovo rese, al racunam da ce ipak neko od vas ovde da mi kaze u cemu je fora.
Hvala!
[ Nebojsa_S @ 22.06.2006. 13:01 ] @
Zar 26. mart 2006 nije datum kad se prelazi na letnje racunanje vremena ( oduzima se 1 h ) ?
[ R-Byter @ 22.06.2006. 13:04 ] @
Pazi kad si u pravu. Jedan deo slagalice je resen. No, mene i dalje interesuje kako da izvrsim korekciju petlje koju sam koristio?
[ R-Byter @ 22.06.2006. 13:20 ] @
Resih konacno.

Na pocetni i krajnji datum dodao sam "00:00:00 GMT".

Koliko problema oko gluposti...
Ne bih se setio da je u pitanju letnje i zimsko racunanje vremena.
Hvala jos jedanput.
[ bzero @ 22.06.2006. 13:43 ] @
Ako vec treba da racunas datume, bolje je da PHP to uradi za tebe. Npr, umesto stvari kao + 86400, koristi strtotime, konkretno u ovom slucaju:

Code:

while ($StartDateUnix < $EndDateUnix) {
    
    ...

    $StartDateUnix = strtotime("+1 day", $StartDateUnix);
}

[ R-Byter @ 23.06.2006. 08:50 ] @
Da se nisam snasao, u svakom slucaju bi sledece pitanje bilo kako da na drugi nacin prodjem kroz neki opseg datuma.
Hvala za pomoc i za ideju. Iskoristicu je svakako.