如何使用 php 中的 date() 获取未来一年中某月的起始工作日

How to get the starting weekday of a month in a future year using date() in php

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

随着我们将这一年提前到 2019 年,它开始弄错起始工作日。 例如,2019 年 1 月从星期二开始,因此它应该 return 2 但 returns 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));

非常感谢

卡梅伦

您的代码使这比需要的复杂得多。

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