【问题标题】:momentjs endOf('month') does not deliver last day of monthmomentjs endOf('month') 不交付月份的最后一天
【发布时间】:2019-04-06 21:38:56
【问题描述】:

当我调用以下代码时

moment('2020-01-01T00:00:00Z').endOf('month').utc().format()

我得到结果

'2020-01-01T07:59:59Z'

当我期望看到时

'2020-01-31T23:59:59Z'

这是一个错误还是我没有正确使用 API?

【问题讨论】:

  • 我刚刚在他们的官网试了momentjs.com 可以。你用的是哪个版本?
  • 似乎是时区偏移问题或图书馆使用失误,我尝试使用我的(-120)它有效!我用你的(480)试过了,它不起作用。仍在检查
  • 我使用的是 2.22.2 版本
  • 我刚升级到 2.24.0 还是有同样的问题。

标签: node.js momentjs


【解决方案1】:

我认为问题在于您在将日期转换为 UTC 之前使用了 endOf

您传递了此日期:2020-01-01T00:00:00Z,但浏览器通过您的时区理解它,因此“实际日期”为 2019-12-31T15:00:00Z

因此,您必须先将其转换为 UTC,然后再进行更改/通话/等。

所以,我试过了,它奏效了!如果问题仍然存在,请告诉我。

moment('2020-01-01T00:00:00Z').utc().endOf('month').format()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    相关资源
    最近更新 更多