# Timestamp für PHP erzeugen > vergleichen mit mysql



## hibbert (31. Juli 2004)

Hi,
ich habe in meiner MySQL Datenbank diesen Timestamp:


> 20040731231200



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


----------



## ByeBye 8492 (1. August 2004)

> _Original geschrieben von hibbert _
> *Hi,
> ich habe in meiner MySQL Datenbank diesen Timestamp:
> 
> ...



Dein Timestamp sieht aber ziemlich nach ner normalen Zeit aus .

mit mktime, kannste nen Timestamp berechnen lassen, der noch nicht erreicht ist


----------



## Gumbo (1. August 2004)

MySQL verfügt ebenfalls über Datums- und Zeitfunktionen:
&nbsp;*&rsaquo;**&rsaquo;*&nbsp;MySQL Manual | 7.3.4 Datums- und Zeit-Funktionen


----------



## shutdown (1. August 2004)

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


----------



## ludz (1. August 2004)

Auf welche Funktion der Datenbank zur Erstellung eines Timestamps beziehst du dich denn?


----------



## shutdown (1. August 2004)

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() ).


----------



## hibbert (1. August 2004)

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


----------



## ludz (1. August 2004)

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?


----------



## saila (1. August 2004)

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
$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

$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.


----------



## JocalAreaNetwork (1. August 2004)

Beim Einfügen mit MySQL nehme ich immer UNIX_TIMESTAMP(), das klappt einwandfrei.


----------



## hibbert (1. August 2004)

oki doki ich habs nun geschluckt ;o) also verstanden.

thx hibbert


----------

