Timestamp er en time forsinket, eller hvad?
Jeg har fundet noget der for mig forekommer helt forkert.Jeg har altid troet at Unix Timestamp er det antal sekunder, der er gået siden midnat 1.jan 1970. Det lader også til at PHP har samme opfattelse bl.a. ud fra denne side http://dk.php.net/manual/en/function.time.php. Men når jeg eksperimenterer med de funktioner, der har med timestamps at gøre, får jeg det resultat, at det faktisk er antal sekunder siden 1.jan. 1970 kl. 01:00 AM.
Følgende kode viser at "hours" er 1.
<?PHP
$then = 0; // det timestamp, som burde være det "absolut første"
$thenarr = getdate($then);
foreach ($thenarr as $key => $value)
echo $key." ".$value."<BR>";
?>
Man kunne tro at det er fordi den fortæller hvilken time "vi er i gang med" eller "vi har taget hul på", men ifølge dokumentationen spænder "hours" fra 0-23, hvilket også kan ses ved at lægge 23 timer til. Her ses, at 23 timer inde i 1970 er "hours" 0 og "yday" (dage inde i året) 2.
<?PHP
$then = 82800; // 23 timer inde i 1970, 60*60*23
$thenarr = getdate($then);
foreach ($thenarr as $key => $value)
echo $key." ".$value."<BR>";
?>
Har jeg overset noget? Glemt at tage højde for noget? Er der tale om en bug (næppe)? Er dokumentationen forkert? Er midnight rent faktisk kl. 1:00 om morgenen i USA?
VH Velle