gpt4 book ai didi

javascript - Javascript 中的 Date.now 和 Date.getTime 有什么区别以及时区如何影响它们?

转载 作者:行者123 更新时间:2023-12-01 04:54:38 24 4
gpt4 key购买 nike

我试图了解当客户端和服务器的时区可能不同时,如何在客户端和服务器上使用 Javascript 创建日期会影响查询结果。

在客户端,我使用 Date.now()保存时间戳信息

var time = Date.now()
console.log(time);

The now() method returns the milliseconds elapsed since 1 January 1970 00:00:00 UTC up until now as a Number.



我的理解是这个时间戳与任何时区偏移量无关,换句话说,它指向的时间是 Zero timezone offset . 这是对的吗? .

我们还可以使用以下代码获取此时间戳
var now = new Date();
time = now.getTime();
console.log(time);

此代码仍然提供相同的时间戳信息(在零时区偏移处)。 Date.now() 只是获取时间戳的快速方法吗?

现在,从 Date.now() 开始构建日期并将其显示在浏览器的控制台中。
var time = Date.now()
console.log(time);

var date = new Date(time)
var time = date.getTime()
console.log(time);

console.log(date);

在我看来,只有在浏览器的控制台中显示时,日期才会在浏览器的本地时区中格式化,否则这个日期实例仍然在零时区偏移处保存时间戳。 这是对的吗? .

我也看到了 converting Javascript date to UTC的答案
var now = new Date();
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());
time = now_utc.getTime();
console.log(time);

此代码仍然提供与 Date.now() 相同的时间戳信息。和 console.log语句仅相差几毫秒,我认为这是由于代码执行时间而不是任何时区差异。执行时,以下是该时间实例的输出:
1468408292575
1468388492000

UTC 时间戳和 Date.now() 给出的时间戳之间有什么区别吗? ?

您能否确认这三个选项是否产生相同的结果(即独立于任何时区)以及当客户端和服务器处于不同时区时是否可以安全地使用此时间戳信息进行交互。例子:
  • 客户端向服务器端发送保存请求以保存此客户端生成的时间戳?
  • 客户根据这个保存的时间戳要求结果?

  • 我想将其减少到我只想显示时区信息以用于显示目的的级别,例如在 HTML 中,在生成的文件中。

    我的问题可能太简单了,因为我对看到 Date class documentation 感到困惑正确使用它以避免时差问题。

    最佳答案

    两者通常相同,但 Date.now()快一点
    进一步阅读 :

  • Performance - Date.now() vs Date.getTime()
  • Performance .now() vs Date.now()
  • 关于javascript - Javascript 中的 Date.now 和 Date.getTime 有什么区别以及时区如何影响它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38351265/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com