[MySQL mit PHP] Mit Datum bzw. Uhrzeit arbeiten

x3008x

Mitglied
Abend Leute,
seit kurzer Zeit befasse ich mich mit MySQL.
Laut einem Statusbericht kann ich euch folgende Daten bieten:
Code:
MySQL-Datenbank	4.1.22
PHP             4.4.7

Also folgendes:
ich habe 2 felder: DATUM und ZEIT
(Die felder habe ich als VARCHAR gesetzt, da mir das Format von DATETIME nicht zusagt.
Ich möchte nämlich gerne das Format dd.mm.yy - hh:ii haben. (zumindest beim ausgeben.
da ich jetzt nicht erst alles rumtauschen wolltet habe ich die daten einfach als varchar eingetragen.

ok nehmen wir ein Beispiel, die Datenbank enthält:
Code:
DATUM "25.12.07"
ZEIT "22:00"

Ich möchte dass man einen Beitrag nur solange bearbeiten kann, solange es noch 2 Stunden vor DATUM und ZEIT ist... in dem Beispiel also solange 25.12.07 - 20:00 nicht überschritten wird.

Also lese ich die ZEIT (irgendwie im Zusammenhand mit DATUM) in meine php datei ein.
würde ich jetzt ZEIT - 2 machen, dann käme ja bei 22 sogar 20 raus... und den rest könnte ich vllt. auch wieder dran fummeln, aber mein Problem ist folgendes:
Wenn ich jetzt zb. ZEIT "01:00" habe und davon 2 abziehe bekomme ich aber -1... da sollte dann aber ein tag früher und dann 23:00 kommen.

Da ich mich aber nicht so anstellen will bin ich auch gerne bereit DATETIME zu nehmen.
Format hin oder her, hauptsache wäre erstmal dass ich damit arbeiten kann.
Allerdings wüsste ich bei DATETIME genau so wenig wie ich damit rechnen sollte.

Zusammenfassung, was ich im Endeffekt gerne möchte:
Code:
DB => Feld datum (DATETIME) Wert "2007-12-26 1:00:00"
$Lese_DB_datum - 2 (stunden) = "2007-12-25 23:00:00

Hätte einer eine Idee wie ich das anstelle?
 
Sagt dir auch 'unix_timestamp' zu? :)
Das gibt die Zeit, die seit dem 1.1.1970 00:00 vergangen ist, in Sekunden an.

Dieser PHP-Befehl gibt z.B. 25.12.07 - 19:33:36 aus:
PHP:
$timestamp=time(); // Aktuellen Timestamp holen
echo date("d.m.y - H:i:s",$timestamp);
Um dann zu überprüfen, ob ein Timestamp älter als 2 Stunden ist, nimmt man den aktuellen Timestamp und zieht 2 Stunden ab ( 2 * 60 * 60 ):
PHP:
$timestamp<(time()-2*60*60))
oder auch direkt in MySQL:
Code:
 SELECT * FROM table WHERE 'timestamp' < UNIX_TIMESTAMP()-2*60*60
Um in PHP einen Zeit-String in einen Timestamp umzuwandeln, gibt es die Funktion [phpf]strtotime[/phpf].
 
Abend,
du hast mich auf jeden fall auf die richtige Richtung gebracht! Danke dafür :)
Naja ich habs jetzt auf jeden fall geschafft... ich wandel die werte einfach in ein timestamp um und rechne dann damit...

das mit mysql hab ich nicht ganz hinbekommen... verstehe die zusammenhänge ja auch noch nicht so... aber hauptsache ich habs jetzt :)

T H X !
 
Zurück