gpt4 book ai didi

javascript - 从忽略时区的 Unix 时间戳创建日期

转载 作者:可可西里 更新时间:2023-11-01 02:52:19 28 4
gpt4 key购买 nike

对于 oData Rest 服务,我使用 Moment.js 从 Unix 时间戳创建日期,我想忽略时区。我的日期是“2013-12-24”,在 Unix 秒中是 1387839600。

使用

moment("2013-12-24", "YYYY-MM-DD").toISOString()

结果为“2013-12-23T23:00:00.000Z”,因为我住在 GMT+1。通过使用

moment.utc("2013-12-24", "YYYY-MM-DD").toISOString()

我得到“2013-12-24T00:00:00.000Z”,这正是我想要的。我可以简单地删除祖鲁时间末尾的“Z”。

但我的日期的真实表示是 Unix 时间戳。所以如果我这样做

moment.utc(1387839600, "X").toISOString()

我总是得到“2013-12-23T23:00:00.000Z”,但我希望它返回“2013-12-24T00:00:00.000Z”。

我错在哪里?感谢您的帮助!

最佳答案

Unix 时间戳,无论是秒还是毫秒,总是为 UTC。值 1387839600 实际上是 2013 年 12 月 23 日晚上 11:00 UTC。您使用 sites like this one进行验证。

如果您希望时间为 2013 年 12 月 24 日午夜 UTC,则时间戳将为 1387843200

所以时刻表现正确。您应该专注于您的休息 API,并确保它正确发出 UTC 而不是本地时间值。

此外,如果您只需要日期部分,则不要使用 .toISOString。相反,请使用 .format,例如:

moment.utc(1387843200, 'X').format('YYYY-MM-DD')

关于javascript - 从忽略时区的 Unix 时间戳创建日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20700085/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com