wahsaga: localtime fehler oder "Das Ende der Welt"

Beitrag lesen

hi,

Beim rumspielen mit localtime viel mir auf, dass die Funktion bei manchen in der Zukunft liegenden Werten Sekunden das Jahr 1970 ausspuckte.
Ich bin mir sicher, dass das bekannt ist, habe aber hier nicht finden können.

tja, das liegt daran, dass die obere grenze eines signed integer mit 16 bit, also ein double word, bei 2.147.483.647 liegt.
tja, und 1.1.1970, 0 uhr plus 2.147.483.647 sekunden - kommt irgendwo im jahre 2037 aus.

Ich hab das Musterscript (von selfhtml) mal schnell in ne Schleife gepackt und musste sehen, das ende der Zeitrechnung ist bereits 2037 erreicht ist, besser gesagt, wir fallen dan in das Jahr 1902 um von dort an, bis ins Jahr 1970 zu leben und im Jahr 1970 werden wir dann hängenbleiben.

tja, zurück nach 1902 geht's dann, weil wir uns da an der negativen untergrenze des double word integers befinden - 1.1.1970 plus -2.147.483.648 sekunden.

Gibt es bereits eine neuere Funktion, die etwas zukunftssicherer ist, oder mache ich da irgendwo einen systematischen Fehler?

umstellung auf 64 bit integer, quad word, löst das problem erst mal auf ziemlich lange sicht ...

aber so lange das nicht alle systeme verwenden, endet die (EDV-)zukunft erst mal im jahre 2037.
mir wurscht - das sind beispielsweise immer noch um die 32 selftreffen bis da hin ...

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }