[php] mktime / Timestamps

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

Eingeproggt

Betreff: [php] mktime / Timestamps

BeitragDi, Apr 26, 2011 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus,

Erbarmt ihr euch, mir mal bei php zu helfen?
Ich bin zu dumm mit unix-timestamps zu rechnen obwohl php einem da eh alles anbietet was man sich nur wünschen kann. Mein Problem is, dass am Ende nicht das rauskommt as ich erwarte Confused

Etwas präziser gesagt:
Wenn ich mit mktime mir Timestamps erzeuge, die sich genau auf 0 Uhr eines Tages beziehen...
und ich die anshcließend durch die Dauer eines Tages dividiere... müsste ich doch eine ganze Zahl rauskriegen?
Tu ich aber nicht... oder nicht immer. Ich hab durch herum testen rausgefunden, dass es irgendwie am April liegen dürfte, nach dem 4. Monat eines Jahres wird er "ungenau"? Allerdings auch erst in den späten Siebziger Jahren, zum Test hab ich auch 1973 genommen, da klappte alles ganz fein.

Ich lasse mal Code sprechen:

Code: [AUSKLAPPEN]
<?php

$one_day=24*60*60;
echo '21.4.1973: '.((mktime(0,0,0,4,21,1973)+3600)/$one_day).'<br/>';
echo '21.4.1980: '.((mktime(0,0,0,4,21,1980)+3600)/$one_day).'<br/>';
echo '21.3.1973: '.((mktime(0,0,0,3,21,1973)+3600)/$one_day).'<br/>';
echo '21.3.2011: '.((mktime(0,0,0,3,21,2011)+3600)/$one_day).'<br/>';
echo '21.4.2011: '.((mktime(0,0,0,4,21,2011)+3600)/$one_day).'<br/>';

?>


und das krieg ich dabei raus:

Code: [AUSKLAPPEN]
21.4.1973: 1206
21.4.1980: 3762.9583333333
21.3.1973: 1175
21.3.2011: 15054
21.4.2011: 15084.958333333


Wieso hab ich also vereinzelt keine ganzen Zahlen?
Bitte sagt mir nicht das wär ne Rechenungenauigkeit, da sie mir dafür doch etwas "zu bestimmt" auftritt.
Es sollte aber auch keine Sommer / Winterzeit sein, die habe ich durch die "+3600" im Code schon "rausgerechnet" (also man beachte dass mein PC auf dem ich teste auf Sommerzeit gestellt ist).
Und meine letzte Idee waren die Schaltjahre bzw. allgemein die unterschiedliche Länge eines Monats... aber wenn die da mit "Durchschnitswerten" rechnen, wieso geht dann der März gut?

Ich durchschau das jedenfalls nicht mehr und hoffe auf Hilfe. Danke an alle, die sich damit auseinander setzen.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

BtbN

BeitragDi, Apr 26, 2011 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil recht häufig schalt-sekunden oder seltener schalt-minuten eingebaut werden, um den Kalender mit der Umlaufbahn synchron zu halten.

Eingeproggt

BeitragMi, Apr 27, 2011 0:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke. Die Antwort ist doch einfacher als ich dachte. Hab schon geglaubt mein Intel Prozessor spinnt Razz
Also wenn ich jetzt Ganzzahlen brauche, dann runde ich einfach und alles ist gut? (Ich machs im Moment so... und hoffe einfach dass ich dadurch nicht irgendwann mal erst recht "Rundungsfehler" einbaue. Halt selbst erzeugte sozusagen...)

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

blackgecko

BeitragMi, Apr 27, 2011 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Laut Wikipedia wurden von 1972 bis jetzt ganze 34 Schaltsekunden eingefügt.
Das mit dem Runden wird erst problematisch, wenn insgesamt mehr als ein halber Tag (43200 Sekunden) eingefügt wurde, was bei diesem Tempo etwa im Jahr 51525 der Fall sein wird. Shocked
Also runde ruhig Wink
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group