以 php 为单位获取两个日期之间每天的总数


Get total number of each day between two date in php

如果我给出 2 个日期,我需要如下结果 -

SUNDAY = 3 TIMES
MONDAY = 3 TIMES
TUESDAY = 4 TIMES
WEDNESDAY = 4 TIMES
THURSDAY = 4 TIMES
FRIDAY  = 4 TIMES
SATRUDAY = 4 TIMES

我很困惑这是否可以通过 mysql 中的任何函数完成,或者我必须从 php 完成。我在mysql中尝试了各种方法,但无法取得任何成功。我正在用 php 尝试它,但代码有点长。

尝试;

define('ONE_WEEK', 604800); // 7 * 24 * 60 * 60
function number_of_days($day, $start, $end)
{
    $w = array(date('w', $start), date('w', $end));
    return floor( ( $end - $start ) / ONE_WEEK ) + ( $w[0] > $w[1] ? $w[0] <= $day || $day <= $w[1] : $w[0] <= $day && $day <= $w[1] );
}
//$start = $end = time();
echo number_of_days(0, $start, $end); // SUNDAY
echo number_of_days(1, $start, $end); // MONDAY
echo number_of_days(2, $start, $end); // TUESDAY
echo number_of_days(3, $start, $end); // WEDNESDAY
echo number_of_days(4, $start, $end); // THURSDAY
echo number_of_days(5, $start, $end); // FRIDAY
echo number_of_days(6, $start, $end); // SATURDAY
?>