Mailinglisten-Archive |
Michael Stahmann schrieb:
>
> Christian Hofmann schrieb:
>
> > Hallo!
> >
> > Wie mache ich den Vergleich am besten und was speichere ich in die
> > Datenbank? Timestamp fällt wohl nun weg.... Da gibt es doch so etwas wie
> > Datetime - oder?
> > Aber das ist ja mit Zeit. Und überhaupt wie geben ich dieses Format an?
> >
> > ich hoffe es sind nicht zu viele und zu dumme Fragen...
> >
>
> Wenn Du weist, das die Daten außerhalb des timestamps liegen, dann erhöhe doch
> einfach immer beide Zahlen so, das Sie sicher im Bereich des timestamps sind.
> Der Vergleich klappt dann richtig. Und das Ende der Unix-Epoche ist noch weit
> entfernt.
>
> Sicher ist das eine unschöne Krücke, aber wenn es gut Dokumentiert ist,
> verstehst Du es auch noch in fünf Jahren, wenn am Programm noch mal etwas
> geändert werden muß.
>
> Ich habe bis jetzt keine andere Lösung - ohne timestamp - gesehen oder selbst
> hinbekommen...
Nur mal so eine Idee:
Wieso berechnest du nicht mit allen drei Daten die Anzahl der Tage seit
dem Jahr 1 ?
In der Datenbank kann dann ein ganz normales DATE-Feld bleiben.
Also Tagnummer = intval (Jahr*365,2525 + Tag + Monat[Monatsnr.])
mit Monat[1]=0 (Januar),
Monat[2]=31 (Februar),
Monat[3]=59 (März - kein Schaltjahr),
Monat[4]=90 (April)
usw.
und Jahr vierstellig (2000 statt 00)
Danach reicht ein einfacher Integervergleich.
Für den beschriebenen Anwendungsfall ist ja eigentlich noch nicht mal
eine Schaltjahrberücksichtigung erforderlich.
Comments ?
Gruss,
Arne
php::bar PHP Wiki - Listenarchive