PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datum aus MySQL


wollenschlaeger
20.11.2003, 17:33:21
Hallo,

ich habe zwei Probleme mit dem Speichern und dem Auslesen von Datumswerten.

1. Problem

In einem Formular gebe ich einen Datumswert (10.11.2003) ein. Dieser wird mit

$sql = "INSERT INTO stundenerfassung (id_user, datum_beginn,
zeit_beginn, zeit_ende, grund, dauer)
VALUES
('".$userid."', '".$datum_beginn."', '".$uhrzeit_beginn."',
'".$uhrzeit_ende."', '".$taetigkeit."', '".$gesamt."')";

gespeichert wird der Wert 20.11.2010.

2. Problem

Wenn ich mir den Datensatz mit dem entsprechenden Datum anzeigen lasse wird der Wert 2010-11-20 ausgegeben.

Vielleicht kann mir jemand helfen. Ach ja, das MySQL-Feld hat den Typ "Date"

Grüsse
Roland

pixeldust
20.11.2003, 18:24:29
hallo,

ich denke, deine probleme haben in der tat mit dem feldtyp (date) zu tun. änder den feldtyp doch mal zb auf varchar und teste dann noch mal. sollte jetzt eigentlich gehen, oder?

wenn der feldtyp aber so bleiben soll, wie er ist, dann musst du entsprechend dem feldtypformat an stelle von 10.11.2003 wahrscheinlich 2003-11-10 (also JJJJ-MM-TT) eingeben.

Mit strftime() kannst du aber das datum in jeder form, auch mit der landessprache entsprechenden ausgeschriebenen monats- oder tagesnamen ausgeben lassen. http://de3.php.net/manual/de/function.strftime.php

hoffe das hilft,
stefan

Nev
21.11.2003, 10:32:07
Hi @ll

Pixeldurst hat recht, der DatenTyp Date speichert im Englischen Format ab.

Die erste Möglichkeit ist sehr nett.
Hättest auch kein Problem mit einer führenden NULL.

Ich kann aber empfehlen das Datum um zu konvertieren
in einen UNIX-Timestamp.

Das hat den Vorteil, das man Datum und Uhrzeit in einem Feld speichern kann.

Zusätzlich kann man mit einer kleinen Funktion, das Datum entweder im Englischen bzw. Deutschen Format ausgeben.
Bzw. auch die Winter und Sommerzeit berechnen.

wollenschlaeger
21.11.2003, 11:00:47
Hi, zunächst mal Danke für die Anregung.

ich möchte die Daten schon im Format Date abspeichern, dass die Uhrzeit dabei ist wird nicht benötigt, weil in diesem Feld nicht die aktuelle Uhrzeit abgelegt wird, sondern das Datum einer bereits durchgeführten Tätigkeit.

Ich habe jetzt den Tipp mit dem strftime ausprobiert. Im nachfolgenden Beispiel ist "$row[2]" der Datumswert. Also unformatiert wird angezeigt : 2003-11-20, wenn ich es wie nachfolgend formatiere dann steht in jeder Variable bzw. in meiner Ausgabe auf den Browser 01.01.1970

Und das kommt mir etwas komisch vor, leider verlassen mich da meine Kenntnisse.


$datum_formatiert = strftime("%d.%m.%Y", $row[2]);

Vielleicht weiss ja einer von Euch ein Rat.
Das Abspeichern des Datum funktioniert indem ich einfach die Eingabe entsprechend anpasse. einzig das auslesen bereitet mir noch etwas Probleme.

Gruss
Roland

René_M
21.11.2003, 13:19:46
$datum_formatiert = date('d.m.Y', strtotime($row[2]));