Probleme mit der Zeitbestimmung
Florian
- php
0 Severin Kacianka0 Vinzenz0 Severin Kacianka0 Tom
Folgendes habe ich eingegeben:
$jetzt = time();
$datum = strftime("%d.%m.%Y",$jetzt);
$tag = strftime("%d",$jetzt);
$monat = strftime("%m",$jetzt);
$jahr = strftime("%Y",$jetzt);
.
.
.
mysql_query("insert tabelle(datum, tag, monat, jahr)
values ('$datum', '$tag', $monat', '$jahr')");
Das Ergebnis ist für datum 2017-17-20 und jeweils für tag, monat und jahr 0000-00-00.
Wo ist der Fehler?
Danke
Hallo,
Wo ist der Fehler?
Ohne jetzt ganz sicher zu sein, glaube ich zu wissen, dass time() nur die Sekunden seit der "Unixepoche" angibt, strftime aber einen Unix Timestamp verlangt. Ich empfehle dir also einfach einmal das Kapitel Date/Time im PHP-Manual durchzulesen und noch einmal nachzufragen, wenn etwas unklar bleibt.
Eine weitere Idee wäre es, das Datum überhaupt als Unix Timestamp zu speichern und MySQL mit dem Datum umgehen zu lassen. Informationen dazu gibt es sicher in der MySQL Dokumentation.
gruß,
Severin
Hallo Severin,
Ohne jetzt ganz sicher zu sein, glaube ich zu wissen, dass time() nur die Sekunden seit der "Unixepoche" angibt, strftime aber einen Unix Timestamp verlangt. Ich empfehle dir also einfach einmal das Kapitel Date/Time im PHP-Manual durchzulesen und noch einmal nachzufragen, wenn etwas unklar bleibt.
Die besagt, dass time() http://de2.php.net/manual/de/function.time.php einen Timestamp zurückliefert. Allerdings sollte Florian die Anmerkung in http://de2.php.net/manual/de/function.strftime.php bezüglich negativer Werte bei Timestamps beachten, schließlich haben wir inzwischen mehr als die Hälfte des Timestamp-Zeitraums hinter uns :-) Ich vermute das Problem an dieser Stelle.
Eine weitere Idee wäre es, das Datum überhaupt als Unix Timestamp zu speichern und MySQL mit dem Datum umgehen zu lassen. Informationen dazu gibt es sicher in der MySQL Dokumentation.
Wegen des begrenzten Zeitraums des Datentyps TIMESTAMP, ich zitiere
<zitat quelle=http://dev.mysql.com/doc/mysql/de/DATETIME.html>
TIMESTAMP-Werte haben einen Wertebereich von 1970 bis irgendwann im Jahr 2037, bei einer Auflösung von einer Sekunde. Werte werden als Zahlen angezeigt.
</zitat>
halte ich es für besser, Datumsangaben als DATE bzw. DATETIME abzuspeichern und _nicht_ TIMESTAMP zu verwenden.
Freundliche Grüsse,
Vinzenz
Hallo,
Die besagt, dass time() http://de2.php.net/manual/de/function.time.php einen Timestamp zurückliefert.
Ich sollte das Manual doch wieder öfters lesen ;-) Trotzdem eine Frage:
Ein Unix-Timestamp sind einfach die Sekunden seit dem 1.1.1970; 0:00:00 Uhr GMT; Hat jetzt der "Timestamp" in der Form 200407180922 auch einen eigenen Namen?
gruß,
Severin
Hello,
Ich sollte das Manual doch wieder öfters lesen ;-) Trotzdem eine Frage:
Ein Unix-Timestamp sind einfach die Sekunden seit dem 1.1.1970; 0:00:00 Uhr GMT; Hat jetzt der "Timestamp" in der Form 200407180922 auch einen eigenen Namen?
Ich würde das als "Ansi-Datum" bezeichnen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom