一致的客户端 Date/timestamp 使用 JavaScript(考虑时区)

Consistent Client Side Date/timestamp using JavaScript(considering TimeZones)

我的问题是关于手册中关于 JavaScript 日期的引述:

Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies.

new Date('2016-04-14') 用户的输出是 Wed Apr 13 2016 17:00:00 GMT-0700 (US Mountain Standard Time),他必须在其上使用 .toUTCString()

如果用户在多个不同的时区,如何处理?

如果你使用

 new Date().getTime();

它将return为您提供自 1970 年 1 月 1 日以来客户端所在的当前时区的毫秒时间戳。然后可以将其转换回任何语言的日期。

如果您要将日期发送到服务器和从服务器发送以及在客户端之间发送日期,这将是一种更好的传递日期的标准方法。由于在时区 a 中转换的毫秒时间戳 ts 将转换为 01/01/2010,在时区 b 中将转换为 01/01/2010,因为它们取自 1970-01-01

希望这有意义

new Date().getTime(); returns 一个整数值,作为自 1970 年 1 月 1 日以来客户端机器上的时间

由于这是一个整数值,它与语言环境、浏览器版本、不同的浏览器(IE、Chrome、Mozilla 或任何浏览器)无关。

因此,只要知道客户端的时区。

,就客户端机器上的时间而言,这应该会为您提供一致的结果

您可以使用 getTimezoneOffset API

获取客户端的时区偏移
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

这与 new Date().getTime(); 应该会给你一致的结果。