Als ik de datum op vandaag zet, klopt hij maar als ik hem eerder zet (zie hieronder) geeft hij verkeerde antwoord. Maar waarom?
<?php

$start=strtotime("-1 month");
echo date("d/m/Y", $start). "<br>";

$end = strtotime("+2 weeks",$start);
echo date("d/m/Y", $end);
$vandaag=date("d/m/Y");
if ($vandaag > $end){ echo "overdedatum" ; }
else { echo "tenminste houdbaar tot:" . date("d/m/Y",$end);}


?>
De vergelijking die je doet kan geen correct antwoord geven omdat een alfabetische sortering niet gaat werken. Als je vergelijkt op Ymd gaat het beter, maar nog beter is het om gewoon de unix timestamp te gebruiken die strtotime teruggeeft.
Niet helemaal correct Ben. De vergelijking probeert een string te vergelijken met een integer. In $vandaag staat namelijk een string als "01/03/2016" terwijl in $end een Unix timestamp staat, bijvoorbeeld "1457210152".

De oplossing is dus om van $vandaag ook een timestamp te maken.

<?php

$start = strtotime('-1 month');
$end = strtotime('+2 weeks', $start);
$vandaag = strtotime('now');

echo 'startdatum: ' . date('d/m/Y', $start) . '<br>';
echo 'einddatum: ' . date('d/m/Y', $end) . '<br>';
echo 'huidige datum: ' . date('d/m/Y', $vandaag) . '<br>';

if($vandaag > $end) {
echo 'overdedatum';
} else {
echo 'tenminste houdbaar tot: ' . date('d/m/Y', $end);
}
?>

Reageren