Datum/Uhrzeit überprüfen

G-Hirn

Grünschnabel
Hallo Leute,

ich übermittle mehrere beliebige Datumsangaben und beliebige Uhrzeitangaben an eine SQL Datenbank. Nehmen wir mal den 09.06.2008 18:30:00 und den 09.06.2008 08:00:00.

Jetzt hole ich mir auf einer PHP Seite die Daten mittels
Code:
<tr>
 <td height="10"><?echo $row->datum ?> um <?echo $row->zeit ?></td>
</tr>
wieder aus der Datenbank heraus und übergebe sie in eine Tabelle. Jeder einzelne Eintrag bekommt eine neue Zeile. Diese werden untereinander angezeigt. Dies kann bis zu 200 Einträge betragen. Das sieht dann so aus:

Code:
<tr>
<td height="10">09.06.2008 um 18:30:00</td>
</tr>

<tr>
 <td height="10">09.06.2008 um 08:00:00</td>
</tr>

Nun möchte ich, dass folgendes passiert:
Bei allen ausgegebenen Daten soll überprüft werden, ob sie schon älter als 12h sind. Wenn ja, soll nichts passieren. Sind bei einer Angabe die 12h noch nicht vergangen, soll eine Uhr auf Null runterzählen oder "nur" die entsprechende Tabelle grün hinterlegt werden.

Ich habe absolut keine Ahnung wie ich das anstellen könnte. Ich habe JavaScripte gefunden, die ein festgelegtes Datum/Uhrzeit runterzählen. Bei mir soll aber ein variables Datum herunter gezählt werden.

Kann mir bitte jemand weiter helfen?

Gruß ein unwissendes G-Hirn
 
Zuletzt bearbeitet:
Guten Morgen,

um es mal grob anzureißen.

1. Du holst dir die aktuelle Uhrzeit oder Datum/Uhrzeit. Hauptsache du hast was zum rechnen.

PHP:
 $jetzt = date("H:i:s");                         // 17:16:17 (

2. Dividierst von der aktuellen Zeit die gespeicherte zeit.
3. Nimmst eine IF anweißung und sagst ganz einfach wenn das Ergebnis der Divisio <= 12 dann soll die zeile grün werden.
4. Tabellen Zeile färbst du über denn Farbwert der jeweiligen Zeile ein.

Also eigentlich kein Hexenwerk.

MFG Marco
 
Zuletzt bearbeitet:
Beispiel ansehen:
http://ubboard.de/tmp/index.php

Code:
<tr>
 <td height="10"><?echo $row->datum ?> <?echo $row->zeit ?></td>
 <td></td>
 <td height="10"><?echo date("d.m.Y")?> <?echo date("H:i:s")?></td>
 <td></td>
 <td height="10">Hier sollen dann die 12h runtergezählt werden.</td>
</tr>

Also mit der ersten Zeile hole ich mir die Daten aus der Datenbank.
Mit der dritten Zeile gebe ich das aktuelle Datum aus. (automatischer Seitenrefresh wird noch eingebaut).
In der fünften Zeile muss nun gerechnet werden. Und jetzt hängt es bei mir.
 
Zuletzt bearbeitet:
Das mag zwar eine umständliche Methode sein aber es sollte funktionieren:

PHP:
$db_datum = explode(".", $row[datum]);
$db_zeit = explode(":", $row[zeit]);

$db_timstamp = mktime($db_zeit[0], $db_zeit[1], $db_zeit[2], $db_datum[1], $db_datum[0], $db_datum[2]);

$jetzt_timestamp = time();

if($jetzt_timestamp < ($db_timstamp + 43200)){
    // jetzt ist der Eintrag jünger als 12 Stunden
    // dein Countdown oder was auch immer
}

Siehe auch http://de3.php.net/manual/de/function.mktime.php
 
Danke für die Hilfe, aber ich bin anscheinend nicht in der Lage, das Thema zu verstehen. :confused:

<?
$db_datum = explode(".", $row[datum]);
$db_zeit = explode(":", $row[zeit]);
$db_timestamp = mktime($db_zeit[2], $db_zeit[1], $db_zeit[0], $db_datum[1], $db_datum[0], $db_datum[2]);
--schnipp--
Also, hier wird das Datum und die Uhrzeit aufgeteilt, da ja meine Ausgabe bisher so aussieht 01.11.2008 12:45:59 (Tag.Monat.Jahr_Stunde:Minute:Sekunde)
Was ich jetzt aus dem Code meine herauszulesen, da sieht die $db_timestamp nun so aus: 12455911012008 (StundeMinuteSekundeMonatTagJahr). Ich habe hier gelesen, das zuerst die Stunden, dann die Minuten und dann erst die Sekunden ausgelesen werden sollen.

Mit dem Befehl in der Klammer ($row->datum) hole ich mir die Daten aus der Datenbank. Warum hast Du es bei Deinem Beispiel in eckige Klammer gesetzt?:confused:

--schnipp--
$heute = time();
$diff = $heute - $db_timestamp;
echo strftime("%m Monate %d Tage %H Stunden %M Minuten %S Sekunden",$diff);
?>
Hier habe ich nun versucht, das heutige Datum mit $db_timestamp zu subtrahieren. Aber es wird auf der Beispielseite irgendwas gezählt. Ich weiß absolut nicht, was da gezählt wird und komme echt nicht weiter. Habe jetzt fast eine Woche daran experimentiert, aber alles ohne Erfolg.:(

Sollte das irgendwann mal funktionieren (woran ich schon nicht mehr glaube), dann soll ja "nur" die Tabelle, in der die Zeit runter gezählt wird, grün angezeigt werden. Sobald 12h vom Eintragsdatum abgelaufen sind, soll ja die Tabelle wieder farblos sein. Aber da kann ich mich ja erstmal wieder belesen, bevor ich hier weiter nerve.

Aber davon bin ich noch Meilen entfernt. Habe mich hier belesen, aber bisher ohne Erfolg.

Brauche also dringend Hilfe.
Bitte, helft mir.
 
Zuletzt bearbeitet:
Zurück