DateTime->Diff voegt extra uur toe...
Ik zit met het probleem en het heeft met DateTime. Ik wil het verschil in minuten tussen twee datums weten alleen voegt hij hierzo voor één of andere reden een uur bij op waarom zeg maar 2 min verschil, 58 minuten word en die terug telt naar 0. Terwijl het dan 2 minuten moet zijn en natuurlijk optellen naar 'x' zeg maar.
Één tijd haal ik uit de database die word daar ingevoerd door derden. En dan moeten het verschil berekend worden met de huidige tijd in minuten. Als ik alles trigger_error de tijden die ik krijg komen de juiste tijden tevoorschijn, alleen als ik dan het verschil wil berekenen met $x->diff($y); word er een uur bij opgeteld voor één of andere reden.
Dit is de code.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
$timeZone = new DateTimeZone($this->cfg->timezone);
$timeAb = new DateTime('@' . $abTime);
$currentTime = new DateTime();
$currentTime->setTimezone($timeZone);
$difference = $timeAb->diff($currentTime);
$minutes = $difference->format('%i');
$hours = $difference->format('%H');
$this->currValue = (($hours * 60) + $minutes);
$timeAb = new DateTime('@' . $abTime);
$currentTime = new DateTime();
$currentTime->setTimezone($timeZone);
$difference = $timeAb->diff($currentTime);
$minutes = $difference->format('%i');
$hours = $difference->format('%H');
$this->currValue = (($hours * 60) + $minutes);
Weet iemand wat het kan zijn? Zit er nu al lange tijd op vast en lukt me maar niet om erachter te komen wat het is.
Groetjes
Gewijzigd op 01/02/2013 16:01:27 door Bastiaan Kl
niet? :(
Ik zie trouwens helemaal niet waar je de te-vergelijken-tijd neerzet...
Of gewoon zo?
Zo hoef je de tijd helemaal niet uit de database te halen, je wilt immers alleen het verschil weten.
En omdat de tijd uit de database komt, kan je dit prima oplossen in (my)SQL en hoeft dat niet in PHP.
Gewijzigd op 05/02/2013 09:58:44 door Eddy E
Eddy E op 05/02/2013 09:58:16:
... omdat de tijd uit de database komt, kan je dit prima oplossen in (my)SQL en hoeft dat niet in PHP.
Meer zelfs.
Met mySQL is het eenvoudig en werkt het altijd. Met php moet je zwaar beginnen prutsen om iets van werkende datediff te krijgen.
TIMESTAMPDIFF() gebruiken, waarmee je kan bepalen in welke eenheid het tijdsverschil uitgedrukt moet worden.
Want kan je ook nog Jep, er is gewoon veel mogelijk (met PHP ook hoor), maar zoiets doe je gewoon in SQL.
ok thx! ga het proberen