如何使用PHP中的date()获得未来一年中一个月的开始工作日

时间:2018-08-29 18:42:48

标签: php date mktime

我正在使用date()格式返回一个月的开始工作日。我下面的代码是我试图实现这一目标的方式。对于本年度(2018年),此操作正常。例如,本月是八月,开始的工作日是星期三,因此它将为星期三返回3。 (目前为止有效)

当我们将这一年提前到2019年时,它就会开始错误地开始工作日。 例如,2019年1月从星期二开始,因此应该返回2但返回1。(一天出去)

此错误似乎是累积性的,因此,如果我们到2020年,则将出现2天等。 我已经竭尽全力正确格式化此Date(),但无济于事。这甚至是正确的方法吗?

代码:

$future_month = 5 /*for January 2019*/     
$starting_weekday = date('N',mktime(0, 0, 0, date('m', strtotime('+'.$future_month.' months', strtotime(date('Y-m-01')))), 1));

非常感谢

Cameron

1 个答案:

答案 0 :(得分:1)

您的代码使事情变得复杂得多。

$dt = new DateTime('first day of +5 months')
$dt->format('N'); // "2"