需要使用 Moment.js 而不是 UTC 时间戳来接收本地 UNIX 时间戳

Need to receive local UNIX Timestamp using Moment.js rather than UTC Timestamp

我想使用 Moment js 将本地日期时间转换为 unix 时间戳(秒)。我使用了以下公式:-

时刻().unix() 时刻(新日期())。格式("X")

示例:-

a) IST 时间 - 2020 年 4 月 11 日 11:45 上午,UNIX 时间戳 - 1586605500(以秒为单位)

b) UTC 时间 - 2020 年 4 月 11 日 06:15 上午,UNIX 时间戳 - 1586585700(以秒为单位)

我希望得到结果 a) 作为 Unix 时间戳,但我得到的却是 b)。如何使用 Moment JS 轻松解决此问题?

没有 "local Unix timestamp" 这样的东西。 Unix 时间戳测量自 Unix 纪元以来的秒数1,定义为 1970 年 1 月 1 日午夜 UTC.

这意味着在任何给定的时刻,当前的 Unix 时间戳在世界各地都是相同的。如果来自两个不同国家的人进行对话,他们都会同意 "the current Unix timestamp",即使他们的手表显示的时间不同。

所以您问题中的结果 b 已经正确:2020 年 4 月 11 日在印度 11:45am 时,Unix 时间戳 1586585700。任何期望 1586605500 的东西都不是'期待 Unix 时间戳。我不会尝试提供该代码期望的结果,而是更正该代码以期望 Unix 时间戳 - 或者让它期望其他形式的本地值。


1 至少传统上是这样。 "a Unix timestamp but in milliseconds, or microseconds, or nanoseconds" 的想法非常有道理,并且不会改变此答案的任何其余部分。