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

当正确答案是 2013-04-22 时,为什么会输出 2013-04-29?

每当您要搜索的那一天恰好是一个月的第一天,日期计数器(即“第四”)总是显示比它应该显示的多一个。

示例:“2013 年 5 月第三个星期三”输出 2013-05-22,而它应该是 2013-05-15。

我猜测解决此问题的快速方法是查看该月的第一天是否与您正在寻找的同一天并相应地减少日计数器(“第四”,“第三”等)?

4

2 回答 2

3

将语句更改为:

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

关键是of

于 2013-04-29T21:43:39.533 回答
-1

如果其他人也在此处寻找nth当天的答案,例如上个月的 15 日:

date("Y-m-d", strtotime(date("Y-m-d", strtotime("first day of previous month") ).' + 14 days') );

于 2018-05-16T09:56:53.903 回答