计算两个特定日期之间有多少个星期五(或任何星期五)?

Sat*_*Raj 0 php codeigniter date

php中有什么方法可以计算两组日期之间的星期五(或指定的任何其他日期)的数量吗?我是通过像这样的sql来实现的,现在我想直接在php中实现,我在谷歌上搜索了一下,发现只有几天和几周的时间,其他的却没有一周的时间。

Gla*_*vić 6

您可以获得日期范围内特定日期的计数,而无需循环所有日期
我已经修改了这个功能

使用:

echo dayCount('2013-11-15', '2013-11-22', 5); # 2x Friday
echo dayCount('2013-11-15', '2013-11-22', 1); # 1x Monday
Run Code Online (Sandbox Code Playgroud)

功能:

function dayCount($from, $to, $day = 5) {
    $from = new DateTime($from);
    $to   = new DateTime($to);

    $wF = $from->format('w');
    $wT = $to->format('w');
    if ($wF < $wT)       $isExtraDay = $day >= $wF && $day <= $wT;
    else if ($wF == $wT) $isExtraDay = $wF == $day;
    else                 $isExtraDay = $day >= $wF || $day <= $wT;

    return floor($from->diff($to)->days / 7) + $isExtraDay;
}
Run Code Online (Sandbox Code Playgroud)

演示