Bash, Shell, PHP, Python, Perl, CGI
fulltilt
Posts: 366 Joined: 2006-08-27 02:06
Post
by fulltilt » 2009-02-18 12:20
ich möchte mir gerne eine Abfrage erstellen wo ein Datum was zuletzt geändert (update) erfolgt ist farblich markiert wird.
Also z.B. innerhalb der letzten 7 Stunden, rot markieren.
Code: Select all
$basedate = $myrow["date"];
$date1 = strtotime("-7hours", $basedate);
if (($basedate = strtotime($date1)) === true) {
echo "<td><font color=#FF0000>$basedate</font></td>";
}else{
echo "<td>$basedate</td>";
was mache ich bei der Abfrage falsch?
Last edited by
fulltilt on 2009-02-18 13:58, edited 1 time in total.
krackman
Posts: 20 Joined: 2004-04-09 04:31
Location: Bremen
Post
by krackman » 2009-02-18 13:34
hier sollte ein
Code: Select all
if($basedate == strtotime($date1))
{}
else
{}
reichen. müsste aber sekundengenau sein.
Du kannst natürlich auch mit time() arbeiten.
Code: Select all
if(($basedate + 7*60*60) > time())
{
echo "Letzte Änderung ist länger als 7h her";
}
else
{
echo "Letzte Änderung ist kürzer als 7h her";
}
Eventuell muss du das auch umdrehen, je nachdem was genau in
dem Datumsfeld der DB steht.
Last edited by
krackman on 2009-02-18 13:41, edited 1 time in total.
fulltilt
Posts: 366 Joined: 2006-08-27 02:06
Post
by fulltilt » 2009-02-18 13:40
matzewe01 wrote:
Wobei ich eher auf > abfragen würde bzw. ein between statt ein "Datetime" auf ein Datum matchen, dass sekundengenau stimmen müsste. ;-)
Und im If war ein = zuviel === -> ein = zuviel. Oder täusche ich mich da?
Danke Dir,
bin das ganze nochmal neu angegangen, das Problem dabei ist wahrscheinlich das Format des Datums (kein timestamp).
so ist es abgespeichert > 18.02.2009 - 11:57:31
habe jetzt mal folgendes gemacht:
Code: Select all
$basedate = $myrow["timestamp"];
if (time() - 60 * 60 * 24 * 1 < $basedate){
$font = "<font color=#FF0000>";
}else{
$font = "<font color=#000000>";
}
echo "<td>$font";
echo "$basedate</font></td>";
bleibt allerdings alles schwarz, keine Veränderung ...
krackman
Posts: 20 Joined: 2004-04-09 04:31
Location: Bremen
Post
by krackman » 2009-02-18 13:50
Code: Select all
$date = str_replace(" - ", "", $myrow['timestamp']);
$ts = strtotime($date);
if(time() > ($ts + 7 *3600))
{
echo "länger als 7h her";
}
else
{
echo "kürzer als 7h her";
}
Geht bestimmt auch noch schöner, fällt mir nur gerade nicht ein.
fulltilt
Posts: 366 Joined: 2006-08-27 02:06
Post
by fulltilt » 2009-02-18 13:55
Perfekt :-)
Danke Euch
Krackman wrote: Code: Select all
$date = str_replace(" - ", "", $myrow['timestamp']);
$ts = strtotime($date);
if(time() > ($ts + 7 *3600))
{
echo "länger als 7h her";
}
else
{
"kürzer als 7h her";
}
Geht bestimmt auch noch schöner, fällt mir nur gerade nicht ein.