我有以下代码返回从今天开始的下一个13个星期一。

for($i=1; $i<=13; $i++){
    echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>";
}

我希望能够对此进行修改,以便它不仅显示接下来的13个星期一,而且还显示刚刚过去的星期一。

我尝试如下修改代码,但随后又得到了下周一的两个实例。
for($i=-1; $i<=13; $i++){
echo date("Y-m-d", strtotime('+'.$i.' Monday'))."<br>";
}

数据返回。
2015-04-13
2015-04-20  //<--
2015-04-20
2015-04-27
2015-05-04
2015-05-11
2015-05-18
2015-05-25
2015-06-01
2015-06-08
2015-06-15
2015-06-22
2015-06-29
2015-07-06
2015-07-13

关于我如何实现这一目标的任何想法?

最佳答案

我会这样:

for($i =- 1; $i <= 13; $i == 0 ? $i += 2 : $i++){
    echo date("Y-m-d", strtotime("$i Monday")) . "<br>";
}

使用三元运算符检查$i是否为0-并将其增加2而不是1 :)

10-06 05:15
查看更多