$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吗?
答案 0 :(得分:1)
我可以对last
说些什么,请阅读Datetime - Relative Formats:
“'last'dayname”从当天开始最后一天的日期名称。 (例如:“2008年7月上旬”是指“2008-06-25”;“2008年7月”首先将当前日期设置为“2008-07-01”,然后“上次结婚”移至上一个周三,即“2008年7月” -06-25" )。
我猜它与first
类似,它会为您提供下一个dayname
。
答案 1 :(得分:1)
我认为答案是正确的,因为它们是相对于给定的日期(当没有给出今天的默认值时)。
基于PHP文档:
该函数期望给出一个 包含美国英语日期的字符串 格式并将尝试解析 格式化为Unix时间戳( 自1970年1月1日以来的秒数 00:00:00 UTC),相对于 现在给出的时间戳,或者当前的时间戳 时间,如果现在没有提供。
所以FIRST SUNDAY实际上是第11个,而最后一个星期日实际上是第4个。根据您问题的措辞,您似乎正在寻找该月的第一个星期日和该月的最后一个星期日。此函数返回今天的第一个星期日,以及今天之前的最后一个星期天。