PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prüfen ob Datum schon vorbei ist...


Kauter
11.04.2007, 05:00:54
Hi,

ich habe auf einer Homepage ein paar Termine stehen. Diese sollen, wenn das akutelle Datum vorbei ist einfach durchgestrichen / bzw. nicht mehr angezeigt werden.

Das Datum wird "manuel" als array eingegeben (vorerst) und soll dann mit dem aktuellen Datum verglichen werden. Es sind insgesamt ca. 12 Termine die dort immer stehen sollen. Hab mich mal versucht und es einiger masen hinbekommen. Das einzigste was ich nicht hinbekomme ist, wenn der 12.04 ist dann streicht er mir Datum durch. Ist ja auch logisch, das der timestamp deutlich unter dem aktuellem liegt. Aber wie könnte ich das lösen.

PS: Geht das auch irgendwie einfach, das ganze zu schreiben???

Hier mal der code:

<?php
$datumheute = time();

$datum_1 = '10.12.06';
$datum_2 = '11.04.07';
$datum_3 = '12.12.08';

$splitdatum_1 = split('[./-]', $datum_1);
$splitdatum_2 = split('[./-]', $datum_2);
$splitdatum_3 = split('[./-]', $datum_3);

$unixdatum_1 = mktime(0,0,0,$splitdatum_1[1],$splitdatum_1[0],$splitdatum_1[2]);
$unixdatum_2 = mktime(0,0,0,$splitdatum_2[1],$splitdatum_2[0],$splitdatum_2[2]);
$unixdatum_3 = mktime(0,0,0,$splitdatum_3[1],$splitdatum_3[0],$splitdatum_3[2]);

if($unixdatum_1 >= $datumheute){
echo $datum_1;
}else{
echo '<strike>' . $datum_1 . '</strike>';
}

echo '<br><br>';

if($unixdatum_2 >= $datumheute){
echo $datum_2;
}else{
echo '<strike>' . $datum_2 . '</strike>';
}

echo '<br><br>';

if($unixdatum_3 >= $datumheute){
echo $datum_3;
}else{
echo '<strike>' . $datum_3 . '</strike>';
}

?>

Graf_von_Rotz
17.04.2007, 07:33:17
Hallo!
Ich hoffe ich hab das problem richtig verstanden. Ich hätte das mit einem Array für die Daten und dann mit einer foreach- Schleife gelöst. Das hat den großen Vorteil, daß man das beliebig erweitern kann, ohne am nachfolgenden Code etwas zu ändern.
Das aktuelle Datum hole ich lieber per getdate(), da man da alles in einem schönen Array bekommt.
Mein Vorschlag sieht also so aus, was auch bei einem ersten Test funktioniert hat:

<?php
$heute = getdate();
$datumheute = mktime(0,0,0,$heute['mon'],$heute['mday'],$heute['year']);

$datum[] = '10.12.06';
$datum[] = '17.04.07';
$datum[] = '12.12.08';

foreach ( $datum as $date )
{
$splitdatum = split('[./-]', $date);
$unixdatum = mktime(0,0,0,$splitdatum[1],$splitdatum[0],$splitdatum[2]);

if ($unixdatum >= $datumheute)
{
echo $date;
}
else
{
echo '<strike>' . $date . '</strike>';
}

echo '<br><br>';
}

?>


Gruß

Kauter
25.04.2007, 10:40:19
danke viel mals, hat super geklappt!