【问题标题】:Two different Unix timestamp returns same date/time using moment.js两个不同的 Unix 时间戳使用 moment.js 返回相同的日期/时间
【发布时间】:2025-12-30 01:55:12
【问题描述】:

我试图从 Unix 时间戳获取日期/时间。但是为什么两个不同的时间戳返回相同的日期/时间:

moment.unix(1561514760).format("M/D/YYYY HH:MM:SS ZZ");

返回 "2019 年 6 月 25 日 19:06:00 -0700"

moment.unix(1561517978).format("M/D/YYYY HH:MM:SS ZZ");

返回 "2019 年 6 月 25 日 19:06:00 -0700"

但是如果我跑了 时刻(“2019 年 6 月 25 日 19:06:00 -0700”).unix(); 只会得到 1561514760 我的 UTC 时区是 -7:00,我在浏览器控制台中运行了代码。

【问题讨论】:

  • 我试过 Safari 版本 12.1.1 (14607.2.6.1.1) 和 Chrome 版本 74.0.3729.169 (Official Build) (64-bit) 。两者都是相同的令人困惑的回报
  • 感谢您的更新。推荐您edit您的问题以包含该信息,以免它被埋在 cmets 中。它将帮助那些试图帮助你的人以及未来的访客。

标签: timestamp momentjs


【解决方案1】:

格式化标记区分大小写。

您得到相同的值,因为 MM 是月份(在两种情况下都是 06),SS 是小数秒(在两种情况下都是 00)。

您应该使用 mm 来表示分钟,而使用 ss 来表示秒。

还有:

...我的 UTC 时区是 -7:00 ...

注意术语。唯一的“UTC 时区”是 UTC 本身,有些人会认为 UTC 根本不是时区。相反,“本地时区”的“UTC 偏移量”是 -07:00 对于给定的时间戳。另请参阅the timezone tag wiki 中的“时区!= 偏移量”。

另外请注意,如果您希望显示 UTC 时间而不是本地时间,那么您可以这样做:

moment.unix(<the timestamp>).utc().format(<your format string>)

【讨论】:

  • 非常感谢,马特。它工作得很好。实际上,我希望 momen.js 通过提供 Unix 时间戳和时区来获取本地日期/时间信息。我怎样才能直接做到这一点?现在我必须显示 UTC 时间(应用 timeoffset)并手动添加时区。
  • 请说得更具体一些,如果不是您最初提出的问题,请不要串起问题。提出一个新问题 - 或者更好的是,搜索该问题之前是否有人提出过。
最近更新 更多