DATE_FORMAT()
日付ではなく文字列を返します。 BETWEEN
に3つの文字列引数を渡す ...それが何を返すかを誰が知っているか。
コードを逆戻りするには、次を使用します:
$week_start = date('Y-m-d',time()+( 1 - date('w'))*24*3600);
$week_end = date('Y-m-d',time()+( 7 - date('w'))*24*3600);
mySQLが期待する方法で日付をフォーマットするには、次のようにします。
WHERE
start_date BETWEEN '".$week_start."' AND '".$week_end."'
クエリで。
または、オブジェクト指向のアプローチを好む場合は、次のようにします。
$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);
次に、クエリで次のことを行います。
WHERE
start_date
BETWEEN '".$week_start->format('Y-m-d')."'
AND '".$week_end->format('Y-m-d')."'
次に、他のすべてについて、希望する形式をエコーできます。
echo $date->format('d-m-Y'); // etc