【问题标题】:conversion from timestamp to moment returning a day before从时间戳转换为前一天返回的时刻
【发布时间】:2017-08-07 17:54:39
【问题描述】:

我正在尝试将时间戳转换为时刻 js 对象,如下所示:

let obj = moment.unix(1459382400);

它返回 2016 年 3 月 30 日星期三 20:00:00 GMT-0400 (CDT) 这是错误的,因为给定的时间戳对应于 2016 年 3 月 31 日星期四 00:00:00 GMT。

我错过了什么吗?我做错了什么?

【问题讨论】:

  • 那是因为你的时区。做 moment.unix(1459382400).utc()
  • 它对我不起作用
  • 更具体。尝试使用 utc 会得到什么
  • 在示例中我得到了正确答案,在我的代码中我得到了前一天。

标签: javascript momentjs


【解决方案1】:

这是因为你的时区,最后做.utc()

【讨论】:

    【解决方案2】:

    开箱即用,momentjs 正在使用您的本地时区,所以我想可能是您的问题。 您可以改用let obj = moment.unix(1459382400).utc();,它应该可以满足您的需求。

    此处示例:http://jsfiddle.net/rLjQx/2544/

    相应的文档在这里:https://momentjs.com/docs/#/parsing/utc/

    【讨论】:

    • 我试过你的建议,它总是给我错误的日期。
    • 小提琴中的例子返回了正确的日期,这个答案是正确的。 @assembler 你一定是做错了什么。
    • 我看到了你的例子......它在那里工作,但它在我的代码中不起作用。
    • @James,我知道我遗漏了一些东西......找不到什么
    • @assembler 然后请显示更多相关代码,最好在 jsfiddle 上显示一个最小的完整示例。可能与您的应用程序中的一些初始配置有关,但看到您的代码,这是我现在唯一能想到的。你使用的 momentjs-version 也很好。最后,你有没有试过 cmd shift r (或者相应的“DELETE MY CACHE”- 换行后的东西?这也可能是它没有改变的原因。
    猜你喜欢
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2013-01-05
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多