1
$day = date('l', strtotime('07/25/2010'));
echo "$day ";
echo date("m/d/Y", strtotime("first $day"));

这打印出来Sunday 07/11/2010

$day = date('l', strtotime('07/25/2010'));
echo "$day ";
echo date("m/d/Y", strtotime("last $day"));

这打印出来Sunday 07/04/2010

这里发生了什么?不应该分别是 07/04/2010 和 07/25/2010 吗?

4

2 回答 2

1

我可以说点什么last,阅读日期时间 - 相对格式

"'last' dayname" 取当前 day的最后一个 dayname 。(例如:“2008 年 7 月最后一个星期三”表示“2008 年 6 月 25 日”;“2008 年 7 月”首先将当前日期设置为“2008 年 7 月 1 日”,然后“最后一个星期三”移动到上一个星期三,即“2008 -06-25 英寸)。

我猜它与first它给你的下一个相似dayname

于 2010-07-06T17:54:31.183 回答
1

我认为答案是正确的,因为它们是相对于给定日期的(如果没有给出默认为今天)。

基于 PHP 文档:

该函数期望得到一个包含美国英语日期格式的字符串,并将尝试将该格式解析为 Unix 时间戳(自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数),相对于现在给出的时间戳,或者如果没有提供现在的当前时间。

所以 FIRST SUNDAY 实际上是 11 号,而 LAST SUNDAY 实际上是 4 号。根据您问题的措辞,您似乎正在寻找该月的第一个星期日和该月的最后一个星期日。此函数返回今天之后的第一个星期日,以及今天之前的最后一个星期日。

于 2010-07-06T18:00:09.420 回答