DATE_FORMAT()
geeft een string terug, geen datum. 3 stringargumenten doorgeven aan BETWEEN
... wie weet wat dat gaat opleveren.
Gebruik om uw code terug te draaien:
$week_start = date('Y-m-d',time()+( 1 - date('w'))*24*3600);
$week_end = date('Y-m-d',time()+( 7 - date('w'))*24*3600);
om uw datums op te maken zoals mySQL verwacht, en:
WHERE
start_date BETWEEN '".$week_start."' AND '".$week_end."'
in de zoekopdracht.
Of als u de voorkeur geeft aan een objectgeoriënteerde benadering, doe dan zoiets als dit:
$week_start = new DateTime;
$week_end = new DateTime;
$week_start->setTimestamp(time()+( 1 - date('w'))*24*3600));
$week_end->setTimestamp(time()+( 7 - date('w'))*24*3600);
Doe dan in uw zoekopdracht:
WHERE
start_date
BETWEEN '".$week_start->format('Y-m-d')."'
AND '".$week_end->format('Y-m-d')."'
Dan kun je voor al het andere het formaat herhalen zoals je wilt:
echo $date->format('d-m-Y'); // etc