如何使用 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"
我正在使用 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"