[php] mktime / Timestamps
Übersicht

![]() |
EingeproggtBetreff: [php] mktime / Timestamps |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil recht häufig schalt-sekunden oder seltener schalt-minuten eingebaut werden, um den Kalender mit der Umlaufbahn synchron zu halten. | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke. Die Antwort ist doch einfacher als ich dachte. Hab schon geglaubt mein Intel Prozessor spinnt ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() Also runde ruhig ![]() |
||
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group