2013-04-29 98 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

相關問題