Uhrzeit und Datum speichern!

Kategorien: PHP & MySQL
5 Antworten
JayT
JayT am Sonntag, 18. Dezember 2005 um 11:26
Hallo Leutz, Hier der Code zum speichern der Zeit und Datum: if($action == "senden") { $ordner = "images/gbook/user/"; if(copy($_FILES['bild']['tmp_name'], $ordner.$_FILES['bild']['name'])) { $datum = time(); $zeit = time(); mysql_query("INSERT INTO gbook (autor, home, bild, com, datum, zeit) values ('$autor', '$home', '$bild_name', '$com', '$datum', '$zeit')"); } } Und hier der Code zum anzeigen: if($action == "") { $gbook_view_bit = ""; $gb_query = mysql_query("SELECT * FROM gbook ORDER by id ASC"); while($gb = mysql_fetch_array($gb_query)) { $gb[datum] = date("d.m.Y",$gb[datum]); $gb[zeit] = date("H:i",$gb[zeit]); eval ("$gbook_view_bit .= "".gettemplate("gbook_view_bit")."";"); } eval ("$content .= "".gettemplate("gbook")."";"); } Er zeigt mir 19.12.2005 und 06:08 an, wenn ich jetzt einen GB-Eintrag mache

Kommentare

blackfeet
blackfeet am Sonntag, 18. Dezember 2005 um 15:31

Warum speicherst du zweimal den Zeitstempel?

$datum = time();
$zeit = time();


Das ist zweimal genau der gleiche Wert in der Datenbank. Das macht keinen Sinn. Es reicht ihn einmal zu speichern. Das Datum und die Zeit kannst du dann einfach so ausrechen.

$datum = date("d.m.Y",$gb['datum']);
$zeit = date("H:i",$gb['datum']);

Praktisch verwendest du dann zweimal $gb['datum']. Bitte verwende die Anführungsstriche in den eckigen Klammern, also nicht $gb[datum].

Ansonsten kann ich keinen Fehler auf die Schnelle erkennen. Aber mach mal:
echo date('d.m.Y - H:i')

Wenn das auch falsch ist, dann liegt es Schätzungsweise an der Systemzeit des Servers den du verwendest.

Markus René Einicher
Markus René Einicher am Mittwoch, 21. Dezember 2005 um 21:19

Ja, den Sinn des Zeitstempels hatter wohl nciht ganz verstanden, hab ich auch eine Weile gebraucht.

Ich frag mich nur was die dann im Jahr 2038 machen werden :P

blackfeet
blackfeet am Mittwoch, 21. Dezember 2005 um 22:09

Warum, geht nicht einfach eine stelle länger?
Außerdem muss man bei dem sehr aufpassen, wegen vergangen Daten.
Mein Fehler war mal dass ich Geburtsdaten so speichern wollte. Da waren dann einige falsch.

Markus René Einicher
Markus René Einicher am Donnerstag, 22. Dezember 2005 um 11:29

Hey! Genau den selben Fehler hab ich beim BenutzerSystem von Cepra gemacht :)

Und seit gestern progge ich eine neue Zeistempelfunktion deren Stamp am 1.1.2000 00:00:00 MEZ beginnt und die negative Timestamps interpretieren können soll und für die Wochentage und Monate übergibt man einfach einen Array wo das alles drin steht :)

Die Funktion um ein Datum in diese Stamp umzurechnen hab ich fertig :)

Umgekehrt hab ich aber jetzt zwei Probleme:
-- Sommer/Winterzeit, wie sind die genauen Kriterien
und was is mit dem Jahr 0? das hat die Kirche doch vergessen oder so.

Das mit dem Schaltjahr war eine Lösung von einer Zeile :)

blackfeet
blackfeet am Donnerstag, 22. Dezember 2005 um 18:34

Ich weiß nicht, ich finde so eine funktion relativ überflüssig. Für zukünfigte Daten habe ich keine Probleme feststellen können. (Was meintest du mit dem 2038er Problem?)
Für vergangene Daten mach ich das einfach mit ganz normalen Datum angaben. Also 2005-10-02 Beispielsweise Das kann man dann relativ leicht in eine Österreichische Datumsangabe umwandeln.