javascript - 将带有时区的 unix 时间戳转换为 javascript 日期

标签 javascript datetime

我有一个遗留的网络应用程序,它将日期存储为 UNIX 时间戳(自 1970 年纪元以来的秒数)。通常像这样的时间戳代表 UTC,但这些时间戳是 UTC-8。看起来它从来没有考虑过夏令时 (DST)。我可以在服务器上将它转换为 UTC 并发送给客户端,但我想知道是否有仅 javascript 的解决方案。

示例输入:

1399335987

示例输出:

"2014-05-05T16:26:27-07:00" // Pacific Daylight Time (PDT)

客户端应根据其本地机器显示日期/时间。我研究了使用 momentjs但是我找不到如何从一个数字构造一个日期,而这个数字已经不是 UTC 了。这可能吗?

最佳答案

是的,这是可能的,因为 unix 时间戳是 UTC,Moment Timezone ( http://momentjs.com/timezone/ )

moment
  .unix(1399335987)
  .tz('MST')
  .format('YYYY-MM-DDTHH:mm:ssZ');

你得到

  "2014-05-05T17:26:27-07:00"

注意这里我使用的是MST,你应该可以使用任何你想要的时区,通过Timezone Data Builder ( http://momentjs.com/timezone/data/ )

实际上,默认情况下,moment 会在本地时间进行解析和显示。

这意味着,只有当您处于不同的时区(实际上是偏移量)并且仍想获得 MST 的本地时间时,才需要将时区设置为 MST。

否则,moment.unix(1399335987).format('YYYY-MM-DDTHH:mm:ssZ') 就可以了。

关于javascript - 将带有时区的 unix 时间戳转换为 javascript 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23483787/

相关文章:

c# - 如何将 DateTime.Now 与 NTP 服务器同步?

php - 格式化存储在数据库中的日期

php - 如何将变量值从 javascript 发布到 PHP?

javascript - 检查对象是否在 ng-repeat 中的另一个对象数组中

Javascript 在有断点的情况下可以正确执行,但在没有断点的情况下却不能正确执行 - 为什么?

javascript - 如何使用javascripteach()对数据进行排序

c# - C# 中的自定义日期时间格式

javascript - 检测 DOM 元素顺序的变化

sql - 我想要小时,分钟,两个日期时间的第二个差异

python - 从 PySpark 的 RDD 中的数据中查找最小和最大日期