Kjapp og trygg hosting for Wordpress

Hvorfor regner denne 43200 sekunder feil?

Mr Vest

Sjefen over alle sjefer!
Jeg har laget et lite script som skal regne om en dato som er skrevet inn til et slikt time()-format (unix.)

Denne ender opp med at den viser 31.03.2010 kl 08.00. Jeg har jo skrevet inn 20:00 på klokkeslettet. Hvorfor går den 12 timer (43200 sekunder) tilbake i tid?

$hour=20;
$minute=00;
$second=00;
$month=03;
$date=31;
$year=2010;
$unix=gmmktime($hour,$minute,$second,$month,$date,$year);

Hva kan jeg gjøre for at denne skal bli faktisk kl. 20:00 om kvelden? Jeg kunne jo tatt en liten $unix+43200; men jeg føler liksom at det er en teit løsning om man kan si det slik. :)
 
Sikker på at problemet ligger i denne funksjonen og ikke i outputen din? Du sier at denne viser 31.03.3010 kl 08.00. Vil gjette du får dette tallet fra en date()-funksjon du har kjørt $unix-variabelen gjennom. Har du sjekket at du faktisk har husket å bruke stor H for timer og ikke liten h?
 

Mr Vest

Sjefen over alle sjefer!
Du har helt rett olafmoriarty. Det var nok en liten h som hadde sneket seg inn. Hehe, takk for tipset om den. :)
 
Viktig å huske at det er forskjell på store og små bokstaver i date(). Mens l gir deg «Wednesday» gir L deg «0» (hadde vært 1 om 2010 var skuddår). Mens d gir deg «31», gir D deg «Wed». W gir deg ukenummeret 13, w gir deg nummeret-for-dagen-i-uka 3. Og så videre, og så videre, og for g og h er det altså riktig kapitalisering som er forskjellen på 12-timers og 24-timers klokke.

Tipper forresten du hadde skjønt dette selv om du faktisk hadde prøvd snarveien med $unix + 43200 og fått 1. april klokka 08.00 som resultat. :)
 
Topp