Moin!
Aber strftime() erwartet doch einen Unix-Zeitstempel, welcher in PHP mit der Funktion time() erzeugt wird und die Sekunden seit 1.1.1970 angibt, oder? Mit 2009-03-09 12:11:10 kann ich den nicht füttern, gelle?
strftime() in SQLite nicht, wie mir scheint.
»» Wenn die Unix-Timestamps allerdings unumgänglich sind (was in meinen Augen eher eine schlechte Designentscheidung wäre - Datumsbehandlung würde ich immer möglichst komplett in die DB auslagern, und die Werte in der Applikation nur in alle Richtungen "durchreichen"), dann wird SQLite diese Werte ohnehin als Integer speichern.
Kommt eigentlich eher daher, dass ich mit time() und date() ganz gut hantieren konnte bisher. Auch Verrechnungen mit größer kleiner und ggf. strtotime() oder aber auch 24*60*60*Tagesanzahl machen sich ja ganz galant. Aber Deine Erwägungen haben sicherlich auch was für sich.
Meine oberste Prämisse: Zeitberechnung hat sich in genau EINEM System abzuspielen, niemals in mehreren. Nur so vermeidet man Inkompatibilitäten wegen der Nichtbeachtung irgendeines Kleingedruckten. Wenn du in PHP mit der Zeit rechnen willst, dann nimm PHP. Die Datenbank ist dann reiner Speicher.
Da aber üblicherweise in DB-Abfragen doch wieder Zeitkomponenten reinkommen, die man eventuell nicht vorberechnen kann, besteht die Tendenz, Zeitberechnung AUCH in der DB zu machen. Dann aber sollte man sie AUSSCHLIESSLICH in der DB machen, nicht mehr in PHP.
- Sven Rautenberg