php time() und MySQL UNIX_TIMESTAMP() immer gleich

Gast #2281003
PHP's time() und MySQL's UNIX_TIMESTAMP() liefern ja beide die Sekunden 
seit dem unixoiden Urknall.
Eine vielleicht bescheuerte Frage die sich mir stellt: Liefern beide 
immer das gleiche zurück? Auch wenn der eine Server in Timbuktu und der 
andere in Amiland steht? Oder sollte man sich darauf beschränken immer 
nur eine Version zu nutzen, sollten Anwendung und Datenbank mal getrennt 
voneinander liegen?
Persönliche Seite
time() sollte eigentlich UTC liefern, ebenso wie MySQL TIMESTAMP sollte 
also dann auch keine Probleme geben, man könnte natürlich gleich mit 
"richtigen" Datumsobjekten arbeiten ;)

Auch Wikipedia merkt an:

>> vergangenen Sekunden seit dem 1. Januar 1970 00:00 Uhr UTC,
>> wobei Schaltsekunden nicht mitgezählt werden.
(Hervorhebung von mir)

http://de.wikipedia.org/wiki/Unixzeit

Außerdem beachten: Jahr 2038 Problem:
http://de.wikipedia.org/wiki/Unixzeit#Jahr-2038-Problem
Gast
D. I. schrieb:
> Das Problem ist mir bewusst. In der Datenbank und in der Anwendung habe
> ich dafür schon bigint / 64bit vorgesehen. Ich hoffe, dass es in den
> nächsten 27 Jahren irgendwann mal 64bit timestamps geben wird

selbst windows hat seit einigen Jahren time_t auf 64bit umgestellt.
Gast
Bernhard M. schrieb:
> D. I. schrieb:
>> Ich hoffe, dass es in den
>> nächsten 27 Jahren irgendwann mal 64bit timestamps geben wird
>
> Gibt es schon, z.B. bei HP-UX seit der iA64 (Itanium), also schon einige
> Jahre...

Dann werd ich mal meinen Hoster fragen, ob er meinen Webauftritt auf so 
ne Kiste bringt ;) Und welche Anwendungsumgebung er mir empfiehlt
Persönliche Seite
Peter II schrieb:
> selbst windows hat seit einigen Jahren time_t auf 64bit umgestellt.

... und arbeitet intern schon seit 1993* mit einer 64-Bit-Zeit.
Die wird aus historischen** Gründen als zwei 32-Bit-Werte in einer 
Struktur namens FILETIME aufbewahrt und zählt die vergangenen 
100-nsec-Intervalle seit dem 1.1.1601 (UTC).


*) in den erstgemeinten Versionen. Windows NT 3.1 kam 1993 auf den 
Markt.

**) Die frühen 32-Bit-Compiler kannten keinen int64_t oder 
vergleichbares, deswegen sind in Windows etliche 64-Bit-Größen als aus 
zwei 32-Bit-Werten zusammengesetzten Strukturen aufgebaut

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.