我用这段代码来确定我们在哪个月:
$monthyear = date('F Y');
然后确定一个月的第三个星期日
$thirdsunday = date("D, j M Y", strtotime($monthyear . ' third sunday'));
结果是2015年3月22日星期日,恰好是每月的第4个星期日(3月1日星期日,3月8日,3月15日星期日)。
这是怎么回事?
应该是2015年3月的第三个星期日
$thirdsunday = date("D, j M Y", strtotime('third sunday of ' . $monthyear));
http://php.net/manual/en/datetime.formats.relative.php
"序号日名"确实提前到另一天。(例如"第一个星期三 July 23rd, 2008"表示"2008-07-30")。
http://php.net/manual/en/datetime.formats.relative.php
这意味着,当你说third sunday
没有of
时,它不是做"每月的第三个星期日",而是在给定日期之后的第三个星期日;当你只指定一个月时,给定的日期被解释为该月的第一天,因此第一个星期日之后的第3个星期日 - 当第一个星期日是星期日时 - 因此将是该月的第四个星期日。