查找接下来的13个星期一和上个星期一

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我有以下代码返回从今天的日期开始的未来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 :)

用户回答回答于

尝试这个:

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

或者你只需​​要一个for声明?

扫码关注云+社区