DateTime->Diff voegt extra uur toe...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bastiaan Kl

Bastiaan Kl

01/02/2013 15:57:44
Quote Anchor link
Goedendag,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
                    

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
 
PHP hulp

PHP hulp

23/12/2024 06:45:00
 
Bastiaan Kl

Bastiaan Kl

05/02/2013 09:43:20
Quote Anchor link
niet? :(
 
Eddy E

Eddy E

05/02/2013 09:58:16
Quote Anchor link
Als je nou eens de tijdzone weglaat?
Ik zie trouwens helemaal niet waar je de te-vergelijken-tijd neerzet...




Of gewoon zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT TIMEDIFF(datum_kolom, NOW())


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
 
Kris Peeters

Kris Peeters

05/02/2013 11:11:06
Quote Anchor link
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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/02/2013 12:40:27
Quote Anchor link
Want kan je ook nog TIMESTAMPDIFF() gebruiken, waarmee je kan bepalen in welke eenheid het tijdsverschil uitgedrukt moet worden.
 
Eddy E

Eddy E

05/02/2013 12:46:36
Quote Anchor link
Jep, er is gewoon veel mogelijk (met PHP ook hoor), maar zoiets doe je gewoon in SQL.
 
Bastiaan Kl

Bastiaan Kl

05/02/2013 12:57:44
Quote Anchor link
ok thx! ga het proberen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.