【问题标题】:How to get the starting weekday of a month in a future year using date() in php如何使用 php 中的 date() 获取未来一年中一个月的起始工作日
【发布时间】:2018-08-29 18:42:48
【问题描述】:

我使用 date() 格式返回一个月的起始工作日。我下面的代码是我试图实现这一目标的方式。对于本年度(2018 年),这一切正常。例如,本月是 8 月,开始的工作日是星期三,因此它将返回 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));

非常感谢

卡梅隆

【问题讨论】:

    标签: php date mktime


    【解决方案1】:

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

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

    【讨论】:

    • 我无法让它返回 2,而是创建了一个包含 3 个变量的数组:日期、时区类型和时区
    • 我不确定你的意思是什么?我用 format('N') no? 格式化它?
    • $dt 是对象,format() 返回“2”,您必须将该值分配给变量...
    • 所以我应该把 $starting_weekday = $dt 放在它后面?对不起,我觉得我还是有点困惑哈哈@Devon
    • no...$starting_weekday = $dt->format('N'); 这是非常基本的,我认为您需要花更多时间来学习语言和编程,然后再构建一些东西...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多