【问题标题】:Can you change new Date().toUTCString() to milliseconds since Jan 1, 1970?您可以将 new Date().toUTCString() 更改为自 1970 年 1 月 1 日以来的毫秒数吗?
【发布时间】:2019-12-10 16:35:19
【问题描述】:

我知道如何将 new Date() 更改为 UTC 时间 新日期().toUTCString() 但我想更进一步,获取 UTC 时间,然后将其更改为自 1970 年 1 月 1 日以来的毫秒数。

我试过了

new Date().toUTCString().getTime()

但它说 .getTime() 不是转换为 UTC 时间后日期的函数。 有什么真正的解决办法吗?

【问题讨论】:

  • 对于 JS 中任何严重的时间/日期操作,您应该查看moment.js
  • toUTCString() 返回一个 string 而不是 Date,因此您不能在其上调用 getTime。考虑到该日期相当于getDate 的 Unix 时间戳,我不明白您要实现什么。

标签: javascript syntax utc gettime


【解决方案1】:

为什么不只是 new Date().getTime()? .toUTCString 将使其成为非 Date 对象。所以 getTime() 将不起作用

【讨论】:

    【解决方案2】:

    我认为您正在对 new Date().toUTCString() 产生的字符串运行 getTime() 方法。

    尝试使用: new Date(new Date().toUTCString()).getTime()

    【讨论】:

    • 这确实返回了一个整数毫秒,但奇怪的是,它仍然返回自 1970 年 1 月 1 日以来的我的本地时间 (EST) 的毫秒数。我希望收到自 1970 年 1 月 1 日以来 UTC 时间的毫秒数。对我所在的时区或(客户端浏览器所在的时区)没有偏见
    【解决方案3】:

    Date 对象已经在“自纪元以来的毫秒数”中,即 UTC。所以你只需要防止字符串转换。前任在我的 Linux 机器上使用 Node.js 我得到:

    $ node
    > new Date() * 1
    1564721436203
    > 
    
    # cutting off the ...203 milliseconds
    $ LC_ALL=C date --date @1564721436 --utc
    Fri Aug  2 04:50:36 UTC 2019
    

    但是对于 JS 中的任何严重的日期/时间操作,我会推荐 Moment.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-06
      • 2012-01-19
      • 2012-02-19
      • 2012-07-06
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 2012-10-07
      相关资源
      最近更新 更多