Forum: PC-Programmierung php time() und MySQL UNIX_TIMESTAMP() immer gleich


von D. I. (Gast)


Lesenswert?

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?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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

von D. I. (Gast)


Lesenswert?

Läubi .. schrieb:
> Außerdem beachten: Jahr 2038 Problem:
> http://de.wikipedia.org/wiki/Unixzeit#Jahr-2038-Problem

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

von Bernhard M. (boregard)


Lesenswert?

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...

von Peter II (Gast)


Lesenswert?

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.

von D. I. (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.