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

标签 javascript date datetime momentjs

对于 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/

相关文章:

python - 如何从 Django 模板中的查询集中获取日期名称?

javascript - 您能否生成一个用与 Python 或 PHP 服务器不同的语言编写的子进程,就像使用 Node.js 一样?

javascript - 如果 contentedittable = false,如何更改内容样式?

javascript - 谷歌音乐测试版 : Thumbs Up and Down Now Playing using Javascript

iOS:保存日期选择器的设置

Javascript 获取星期几范围数字数组,在两个数字之间,符合 ISOWeekday

c# - 将时间跨度除以 2?

javascript - 使用 JSTS 缓冲区识别自相交多边形

php - strtotime() 未转换为时间戳

PHP:如何将 date() 函数更改为中部时间 (-6)