[PHP/mySQL] aktuelles Datum in DB speichern, wie?

M

Matse_gast

Gast
aktuelles Datum in DB speichern, wie?

ich bin grad dabei ne kleine mySQL-DB aufzusetzen, eine CD-Verwaltung. bei jedem eintrag soll das aktuelle Datum und der Bearbeiter (dieser später über login) mitgespeichert werden.
beim Datum hab ich so meine Problemchen. Erst mal das, was ich bisher gemacht hab (bin newbie)...

<html>
<head>
<?php
if ($gesendet)
{
$db = mysql_connect();
$heute = getdate();

$sqlab = "insert CD";
$sqlab .= "(CDNr, Beschriftung, Ort, Einpfleger, Einpflegdatum) values";
$sqlab .= "($CDNr, '$Beschriftung', '$Ort', '$Einpfleger', '$heute')";

mysql_db_query("cdverwalt", $sqlab);

$num = mysql_affected_rows();
if ($num>0)
echo "Es wurde 1 Datensatz hinzugefügt<p>";
else
{
echo "Es ist ein Fehler aufgetreten, ";
echo "es wurde kein Datensatz hinzugefügt<p>";
}
mysql_close($db);
}
?>
</head>

<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das
Formular ab:
<form action = "createcd.php" method = "post">
<input name="CDNr"> CD-Nr<p>
<input name="Beschriftung"> Beschriftung<p>
<input name="Ort"> Ort<p>
<input name="Einpfleger"> Einpfleger<p>
<input type="submit" name="gesendet">
<input type="reset">
</form>


</body>
</html>
 
aso, fast vergessen:
als Einpfleg-Datum steht dann immer "0000-00-00" in der DB...
 
Ich würde einfach den Timestamp in einem INT-Feld speichern

$aktuellezeit=time();

Vorteil: Man kann mit ihm einfach unter PHP arbeiten
 
damit krieg ich ja die vergangenen Sekunden zurück, die seit dem 01.01.1970 vvergangen sind...
daraus kann ich dann ein datum errechnen. gibt es ne fertige Funktion dafür oder muss ich selber mein Hirn anstrengen?
 
Penny hat recht, Timestamps sind besser, weil man prima damit arbeiten kann.

Das "Zurück-Konvertieren" geht mit "date" sehr einfach.

Beispiel

$time=date("d.m.Y H:i", $timestamp);

Die Ausgabe wäre dabei auf das heutige Datum bezogen:
09.01.2004 15:19

Weitere Möglichkeiten innerhal der Date-Funktion

a - "am" oder "pm"
A - "AM" oder "PM"
B - Swatch-Internet-Zeit
d - Tag des Monats *( 01 - 31 )
D - Tag der Woche ( Wed - 3stellig)
F - Monatsangabe ( December - ganzes Wort )
g - Stunde im 12-Stunden-Format (1-12 )
G - Stunde im 24-Stunden-Format (0-23 )
h - Stunde im 12-Stunden-Format *(01-12 )
H - Stunde im 24-Stunden-Format *(00-23 )
i - Minuten *( 00-59 )
I(großes i) - 1 bei Sommerzeit, 0 bei Winterzeit
j - Tag des Monats ( 1-31 )
l(kleines L) - ausgeschriebener Wochentag ( Monday )
L - Schaltjahr = 1 , kein Schaltjahr = 0
m - Monat *(01-12 )
n - Monat (1-12 )
M - Monatsangabe ( Feb - 3stellig )
r - Nach RFC 822 formattiertes Datum; z.B.: "Sun, 7 Oct 2001 14:56:02 +0200"
s - Sekunden *( 00 - 59 )
S - Englische Aufzählung ( th für 2(second))
t - Anzahl der Tage des Monats ( 28 - 31 )
T - Zeitzoneneinstellung des Rechners ( z.B. CEST )
U - Sekunden seit Beginn der UNIX-Epoche ( 1.1.1970 )
w - Wochentag ( 0(Sonntag) bis 6(Samstag) )
W - ISO-8601 Wochennummer des Jahres (Woche beginnt mit Montag)
Y - Jahreszahl , vierstellig ( 2001 )
y - Jahreszahl , zweistellig ( 01 )
z - Tag des Jahres ( z.B. 148 (entspricht 29.05.2001) )
Z - Offset der Zeitzone gegenüber GMT (-43200 - 43200 ) in Minuten
 
habs so gelöst...


// aktuelles Datum auslesen
$current = getdate();

//führende 0 zum Tag hinzufügen
if ($current["mday"] < 10) { $current["mday"] = "0" . $current["mday"]; }

//führende 0 zum Monat hinzufügen
if ($current["mon"] < 10) { $current["mon"] = "0" . $current["mon"]; }

//in String wandeln
$current_date = $current["year"] . "-" . $current["mon"] . "-" . $current["mday"];

so isses mir an sich ganz lieb, aba vielleicht mach ichs auch mit nem timestamp...

will mit dem Datum eigentlich nix machen, ist nur als Hinweis, dass man bei gebrannten CDs vielleicht gelegentlich ne frische kopie zieht oder kartei-leichen besser ausfindig machen kann...
 
Hi Leute,

ich habe diesen Code für einen Datumseintrag benutzt, bekomme aber immer den 01.01.1970.
Was hab ich denn wohl vergessen ?? Ist das irgend eine Einstellungssache ?

Grüße, Lars


Penny hat recht, Timestamps sind besser, weil man prima damit arbeiten kann.

Das "Zurück-Konvertieren" geht mit "date" sehr einfach.

Beispiel

$time=date("d.m.Y H:i", $timestamp);

Die Ausgabe wäre dabei auf das heutige Datum bezogen:
09.01.2004 15:19

Weitere Möglichkeiten innerhal der Date-Funktion...
 
Ist der Timestamp korrekt?

Das Datum 01.01.1970 wird immer dann ausgegeben, wenn der Timestamp nicht verarbeitet werden kann, weil er einen Fehler enthält.

Etwas Code wie der Timestamp generiert wird wäre hilfreich.
 
Oben