Datum mit time()
Hallo,
ich beobachte gerade ein "Phänomen", welches ich nicht ganz zuordnen kann.
Für eine DB-Speicheraktion hinterlege ich das Datum mit in der DB,
welches ich vorher mit
$time = date("Y-m-d H:m:s",time());
in die Variable $time ablege.
Ich war immer davon ausgegangen, das time() den aktuellen Zeitpunkt
bestimmt.
Beim ersten Mal ist alles in Ordnung, der Datensatz wird in die Tabelle
geschrieben, mit dem oben festgelegten Zeitstempel.
Wenn ich die Funktion nochmal ausführe und eine zweite DB-Zeile
Speichern möchte, wird ebenfalls wieder mit
$time = date("Y-m-d H:m:s",time());
ein Zeitstempel festgelegt - der ist aber ca. 20 - 30 Sekunden
"vor" dem alten Zeitpunkt - das heisst, ein neuer DB-Eintrag wird
mit einem älteren Zeitstempel gespeichert und das obwohl bei beiden
Aktionen die aktuelle Zeit von time() abgenommen wird.
Weiss jemand Rat?
Danke
Günter
Re: Datum mit time()
Günter Baier schrieb:
> Hallo,
>
> ich beobachte gerade ein "Phänomen", welches ich nicht ganz zuordnen =
kann.
>
> Für eine DB-Speicheraktion hinterlege ich das Datum mit in der DB,
> welches ich vorher mit
>
> $time =3D date("Y-m-d H:m:s",time());
------------------------^
Sollte das nicht wenn ueberhaupt ein 'i' sein?
> in die Variable $time ablege.
>
> Ich war immer davon ausgegangen, das time() den aktuellen Zeitpunkt
> bestimmt.
>
> Beim ersten Mal ist alles in Ordnung, der Datensatz wird in die Tabelle=
> geschrieben, mit dem oben festgelegten Zeitstempel.
>
> Wenn ich die Funktion nochmal ausführe und eine zweite DB-Zeile
> Speichern möchte, wird ebenfalls wieder mit
>
> $time =3D date("Y-m-d H:m:s",time());
------------------------^
> ein Zeitstempel festgelegt - der ist aber ca. 20 - 30 Sekunden
> "vor" dem alten Zeitpunkt - das heisst, ein neuer DB-Eintrag wird
> mit einem älteren Zeitstempel gespeichert und das obwohl bei beiden
> Aktionen die aktuelle Zeit von time() abgenommen wird.
Du hast nicht gesagt was fuer eine DB du hast. MySQL, wie auch andere,
haben spezielle Spaltentypen und in abhaengig vom Typ auch ein
Sonderverhalten.
Die erste Spalte vom Typ "timestamp" erhaelt automatisch einen Timestamp =
wenn der Datensatz erstellt bzw. geaendert wird.
Dazu kommen dann noch Funktionen welche per SQL die akt. Zeit auf dem DB =
Server ermitteln und diese als Masstab benutzen
$sql =3D "UPDATE table SET foo =3D 'bar', last_modify =3D NOW() WHERE id =
=3D 123"
In diesem Fall ist es NOW(). MySQL passt denn Wert dann entsprechend an
so das er die Date, Datetime, Timestamp spalte passt.
Gruss
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Datum mit time()
Joerg Behrens wrote:
> Günter Baier schrieb:
>
>> Hallo,
>>
>> ich beobachte gerade ein "Phänomen", welches ich nicht ganz zuordnen
>> kann.
>>
>> Für eine DB-Speicheraktion hinterlege ich das Datum mit in der DB,
>> welches ich vorher mit
>>
>> $time = date("Y-m-d H:m:s",time());
>
> ------------------------^
>
Stimmt, das sollte ein i sein ... war das tippen wieder mal schneller,
als alles andere. Höchstpeinlich.
Danke
G.
Re: Datum mit time()
Ad 2007-11-18, Günter Baier <guenter.baier [at] googlemail.com> dixit:
> $time = date("Y-m-d H:m:s",time());
^
Das m!=i war ja bereits anderweitig geklaert.
Hat die DB keine NOW()-Funktion? Hier auf mySQL erledige ich das
immer mit
INSERT INTO ...
(zeitstempel, ...)
VALUES
(
NOW(),
...
)"
Wozu das Skript belasten, womit die Datenbank schon dient?
Grusz,
Peter Blancke
--
Hoc est enim verbum meum!
Re: Datum mit time()
Günter Baier schrieb:
> ich beobachte gerade ein "Phänomen", welches ich nicht ganz zuordnen =
kann.
>
> Für eine DB-Speicheraktion hinterlege ich das Datum mit in der DB,
> welches ich vorher mit
>
> $time =3D date("Y-m-d H:m:s",time());
^
Nimm ein 'i', und alles sollte gut sein.
Dein Ausdruck liefert heute zB. 2007-11-18 21:11:45, dreißig Sekunden
später dann 2007-11-18 21:11:15, was dem von dir beschriebenen Effekt
entspricht.
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------