waarom neemt de datum een loopje met me?
marina janssen
05/03/2016 20:50:38Als ik de datum op vandaag zet, klopt hij maar als ik hem eerder zet (zie hieronder) geeft hij verkeerde antwoord. Maar waarom?
PHP hulp
05/12/2024 03:16:16Ben van Velzen
05/03/2016 20:56:20De 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.
Frank Nietbelangrijk
05/03/2016 21:43:29Niet 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.
De oplossing is dus om van $vandaag ook een timestamp te maken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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);
}
?>
$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);
}
?>
Gewijzigd op 05/03/2016 21:47:09 door Frank Nietbelangrijk