在给定的时间范围内每周五,周六和周日

时间:2009-10-10 09:33:55

标签: php date

在不使用PHP5.0的datetime对象的情况下,在两个日期之间获取每个星期五,星期六和星期日的简单方法是什么。

由于速度的原因,我不想在1/1到31/12之间遍历每个日期。 (作为结果视图的一部分,每页我必须计算至少50次:)。

2 个答案:

答案 0 :(得分:14)

$start = strtotime("today"); // your start/end dates here
$end = strtotime("today + 1 years");

$friday = strtotime("friday", $start);
while($friday <= $end) {
    echo "fri=", date("d m Y", $friday), "\n";
    echo "sat=", date("d m Y", strtotime("+1 days", $friday)), "\n";    
    echo "sun=", date("d m Y", strtotime("+2 days", $friday)), "\n\n";    
    $friday = strtotime("+1 weeks", $friday);
} 

肯定可以优化,但你明白了

答案 1 :(得分:3)

好消息是,您不必遍历每个日期,因为星期五总是在星期日五天之后到来!

无论如何,在2000AD到2050AD之间大约有18000天,这意味着你可以建立一个日期 - &gt; DayOfWeek映射会在几分钟内完成,您可以在接下来的几年内重复使用。