获取php中两个日期之间每天的总数

时间:2012-08-11 10:04:49

标签: php intervals datediff days

如果我提供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中尝试它但代码有点变得冗长。

1 个答案:

答案 0 :(得分:1)

尝试;

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
?>