Seite 1 von 2
wie berechnet phpbb das geburtstag?
Verfasst: 12.05.2007 18:29
von greezie
hallo.
ich wollte fragen wie phpbb das geburtstag berechnet?
bei mir in meiner sql tabelle ist das attribut "user_birthday" "int(11)" zugewiesen.
der 31.03.82 wird in die zahl "4472" umgerechnet.
kann mir jemand das erklären?
vielen dank dafür.
Verfasst: 12.05.2007 18:40
von Asmodiel
microsoft hat das glaub ich eingeführt...
soweit ich weiß, wird jedem datum seid dem 01.01.19sonstwas eine zahl zugewiesen und somit das datum errechntet...
dann wird die zahl einfach zurückgerechnet und schon hast du ne zahl
das selbe prinzip kriegst du auch in ms' excel

Verfasst: 12.05.2007 19:17
von greezie
kannst du mir sagen wie das genau geht? ich will alles wissen.
Verfasst: 12.05.2007 20:19
von Asmodiel
wiki?
google?
ich weiß nicht mehr, als das ich geschrieben hab

Verfasst: 12.05.2007 20:28
von kolja
das format nennt sich UNIX timestamp
und die zahl besteht aus den sekunden ab dem 1.1.1970 00.00uhr
http://www.01-scripts.de/timestamp.php
kolja
Verfasst: 12.05.2007 20:30
von Kewwwin
Hallo,
ich glaube kaum, dass der Unterchied vom 31.03.82 zum 01.01.1970 nur 4472 Sekunden sind
Gruß
Verfasst: 12.05.2007 20:39
von Asmodiel
ich glaube, dass es in diesem falle die tage sind...
ps.: es heißt den geburtstag

Verfasst: 12.05.2007 20:45
von buegelfalte
Geburtstag im Format TT.MM.JJJJ = date("d.m.Y", user_birthday)
für mehr Info zur Date-Funktion:
http://de.php.net/date
Verfasst: 12.05.2007 20:58
von Kewwwin
Hallo,
Asmodiel hat geschrieben:ich glaube, dass es in diesem falle die tage sind...
ps.: es heißt den geburtstag

damit meinte ich auch, dass Sekunden die falsche Angabe sind und die Tage korrekt sind

.
Gruß
Verfasst: 12.05.2007 20:59
von oxpus
Der Birthday MOD verwendet zwar den UNIX-Timestamp, der die Sekunden am 1.1.1970 um 0 Uhr bis zum gegebenen Zeitpunkt zählt/darstellt, teilt diesen aber durch 86400, also die Sekunden eines Tages, um die Zahl möglichst klein zu halten.
Grund ist der, daß Windows mit negativen Datumswerten nicht umgehen kann und der Birthday MOD diese Werte daher vor der Anzeige umrechnet und damit korrekt anzeigen kann.
Daher nicht 4472
Sekunden, sondern 4472
Tage
Fazit
date($format, user_birthday);
bringt ein
falsches Ergebnis,
date($format, user_birthday * 86400);
ist da schon korrekter.