Sebastian Baus: Datumsvergleich

Beitrag lesen

Hi,

also:
Du hast den Ablaufwert, den Du durch mktime schon in Sekunden umgewandelt hast. Dann brauchst Du nur noch das aktuelle Datum:

$now= time();

das hast Du so dann auch direkt in Sekunden seit 1970.
Dann subtrahierst Du den Ablaufwert mit now ($status = $tstamp - $now).
Ist das Ergebnis positiv, ist das Datum noch nicht erreicht, ist der wert negativ, ist der Termin vorbei.
Das sieht also so aus:
<?php
$stunden = '08';
$minuten = '32';
$tag = '05';
$monat = '05';
$jahr = '2003';

$plus = '1';

$tstamp = mktime(0, 0, 0, $monat, $tag+$plus, $jahr);
$now= time();
$status = $tstamp - $now;
if ($status < 0) echo "Der Termin ist vorbei!";
if ($status > 0) echo "Der Termin steht noch bevor!";
?>

Habs so probiert und kappt!
Wenn Du das Ergebnis dann noch durch 86400 teilst, hast Du die Zahl der Tage, die der Termin entweder schon vorbei ist oder die noch bis zu dem Termin sind. Je nachdem würde ich das dann noch runden.

Das sollte Dein Problem lösen:

Je nachdem was Du vorhast, geht es aber auch anders:
Wenn ich das richtig verstanden habe, willst Du eine Art Haltbarkeitswert angeben. Zum Beispiel wie lange ein Text zum Beispiel auf einer Newsseite angezeigt werden soll.

Ich würde das etwas anders angehen, vorausgesetzt dass ich das richtig verstanden habe und Du mit einer Datenbank arbeitest:

Wenn man z.B. die News speichert, wird direkt der Wert gesetzt, zu dem die News ablaufen. Also als Beispiel der
07.05.2003.
Bei Aufruf der Seite fragst Du dann einfach nur die Datensätze ab, die größer now sind. Alle anderen bleiben unbeachtet oder werden gelöscht.

Viel Erfolg,
Sebastian