Timestamp für PHP erzeugen > vergleichen mit mysql

hibbert

Mitglied
Hi,
ich habe in meiner MySQL Datenbank diesen Timestamp:

Nun lese ich diesen Timestamp aus der DB aus.

Nun soll die PHP Datei auch einen Timestamp erzeugen und den mit dem aus der DB ausgelesendem vergleichen.

Ist der Timestamp, der in der PHP Datei erzeugt wurde, neuer als der aus der DB, dann soll was passieren ;)

Und da ich gerade dabei bin:

Wie kann ich einen Timestamp in die MySQL DB eintragen, für ein Datum, das noch nicht erreicht ist, zb:

20.08.2004 18:30

Danke schonmal im vorrraus....

MfG hibbert
 
Original geschrieben von hibbert
Hi,
ich habe in meiner MySQL Datenbank diesen Timestamp:


Nun lese ich diesen Timestamp aus der DB aus.

Nun soll die PHP Datei auch einen Timestamp erzeugen und den mit dem aus der DB ausgelesendem vergleichen.

Ist der Timestamp, der in der PHP Datei erzeugt wurde, neuer als der aus der DB, dann soll was passieren ;)

Und da ich gerade dabei bin:

Wie kann ich einen Timestamp in die MySQL DB eintragen, für ein Datum, das noch nicht erreicht ist, zb:

20.08.2004 18:30

Danke schonmal im vorrraus....

MfG hibbert

Dein Timestamp sieht aber ziemlich nach ner normalen Zeit aus :p.

mit mktime, kannste nen Timestamp berechnen lassen, der noch nicht erreicht ist :)
 
Mal so ne Frage nebenbei:

Mir ist aufgefallen, dass wenn ich den Timestamp direkt von der Datenbank erstellen lasse, wenn etwas eingetragen wird, dass dann dieser timestamp völliger Schwachsinn ist!

Seit dem übergebe ich auch immer den aktuellen timestamp mit, wenn ich ihn eintrage.

Weiß jemand woran das liegt?

cu shutdown
 
Auf welche Funktion der Datenbank zur Erstellung eines Timestamps beziehst du dich denn?
 
okay wenn man sichs genauer anschaut isses doch net so der Schwachsinn ;)

Also es gibt unter phpmyadmin die Möglichkeit eine Spalte als timestamp zu definieren.

Wenn dann beim Eintragen die Funktion now ausgewählt wird, wird dieser "schwachsinnige" Timestamp eingefügt (einfach bestehend aus Jahr Monat Tag Stunde Minute Sekunde)

Allerdings gibt die Funktion Unix-timestamp einen Wert raus, der trotzdem immer noch wesentlich länger ist als der timestamp, den ich selbst reinschreibe (über die php funktion time() ).
 
OK, ich habe den Timestamp per NOW() eingefügt, also "schwachsinn"...

Wie trage ich denn dann einen Timestamp ein, der noch nicht erreicht ist und wie kann ich diesen mit einem akt. vergleichen ?

hibbert
 
Die Funktion [phpf]mktime[/phpf] liefert dir anhand der übergebenen Parameter bestehend aus Jahr, Monat, Tag, Stunde, Minute und Sekunde den dazugehörigen Timestamp.

Den aktuellen Timestamp erhältst du durch [phpf]time[/phpf].
Vergleichen sollte nun wirklich nicht schwer sein mit ein paar Operatoren wie == (MySQL: = ), <=, >=, <, >, != (bzw. <>) etc. Oder? ;)
 
also hier mal einige infos zu datum und zeit:

http://www.dclp-faq.de/ch/ch-datetime.html

und tiefere infos

http://de.php.net/manual/de/function.date.php

ich gehe mal davon aus, dass du das datum und uhrzeit per html formular in eine db eintragen willst. dieses datum und die zeit liegt in der zukunft.

du lässt dich oder den user das datum einfach normal eingeben wie folgt:

beispiel:
datum: 01.09.2004
zeit: 10:20:00 (die sekunden müssen nicht sein - kann man aber mit angeben)

danach wird das formular abgesendet und du übernimmst die felder (ich nenne sie mal datum und zeit) wie folgt:

PHP:
<php
$d = explode(".", $datum);
$datum = $d[2]."-".$d[1]."-".$d[0];
// das ergebnis sieht dann von $datum so aus -> 2004-09-01

//das gleiche mit zeit
$zeit = $zeit // sprich du kannst das format ganz übernehmen

?>
per insert oder update in die jeweile tabelle und passende spalte eintragen und du hast das datum drin.

wenn du nun künftige datumsausgaben haben willst, muss du nur eine abfrage der db laufen lassen, bei welcher die datumsangaben in der db grösser gleich als heute sind.
PHP:
<?php

$today = date("Y-m-d");

$con = "select * from tabelle where datum >= '$today'"
$dat = mysql_query($con);
while($ergebnis = mysql_fetch_assoc($dat)) {
         // hier die ausgabe
}
?>

fertig.

willst du hingegen berechnungen mit datumsangaben starten, ist timestamp vorzuziehen.
 
Zurück