Gå til innhold

[Løst] mktime/strtotime, problem med antall dager


Anbefalte innlegg

Edit2: Tidligere skript fjernet, ikke relevant.

 

Får ett problem med antall dager i mars-2009. Eksempel kode for å illustrere

<?php
$endDate='2009-03-31';
$startDate='2009-02-28';

echo strtotime($endDate) - strtotime($startDate)."<br />"; //2674800

$xend=explode('-',$endDate);
$xstart=explode('-',$startDate);
echo mktime(0,0,0,$xend[1],$xend[2],$xend[0]) - mktime(0,0,0,$xstart[1],$xstart[2],$xstart[0])."<br />"; // 2674800
echo 60*60*24*31; // 2678400
?>

 

en diff på 3600 sekunder (1 time).

Noen som vet hvor(for) denne differansen oppstår? Sommertid 29/3? Logisk feil?

 

Tror jeg kan modifisere skriptet til å bruke date("t") i stedet for, da jeg er kun interessert i dager pr hele månder, men hadde vært greit å vite hvorfor, så kan jeg lære litt av skriptene jeg finner ;)

 

Edit: Omforumlert litt, og litt ekstra kode

 

Edit2: Ser ut til at problemet er sommertid, ved å benytte gmmktime i stedet for mktime, så blir det beregnet rett antall sekunder for 31 dager i mars.

echo gmmktime(0,0,0,$xend[1],$xend[2],$xend[0]) - gmmktime(0,0,0,$xstart[1],$xstart[2],$xstart[0])."<br />"; // 2674800

Endret av Crowly
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...