2013-04-29 66 views
0
<?php 
    $endDate = date("Y-m-d", strtotime("fourth monday april ". date("Y", strtotime("2013-04-01"))));  
    echo $endDate 
?> 

为什么这个输出2013-04-29当正确的答案是2013-04-22?strtotime([月] [年]的第n天)

无论何时,当您搜索的日子恰好在一个月的第一天时,日计数器(即“第四”)总是显示比它应该多的一个。

例如:2013年5月3日的第三个星期三产出2013-05-22当它应该是2013-05-15。

我猜测解决这个问题的快速方法是查看每个月的第一天是否是您要查找的同一天,并相应减少日计数器(“第四”,“第三”等)?

+0

也许你是因为你指定了年,月,日? – 2013-04-29 21:40:39

+0

只是假设,但它可能是解释“2013年4月4日后的第四个星期一” – 2013-04-29 21:41:00

回答

3

更改措辞到:

fouth monday of april ". date("Y", strtotime("2013-04-01"))

的关键是of

+1

有趣,因为标题实际上表示** [月] [年]的第[n]天**而[']是回答。 – 2013-04-29 21:46:25

+0

谢谢!完美的作品。我在PHP手册中看到的一些例子省略了,所以这就是我所做的。原来手册不过是谎言。 – Neve12ende12 2013-04-29 21:50:37

相关问题