使用JavaScript的一致客户端日期/时间戳(考虑时区)

时间:2016-04-13 07:00:45

标签: javascript client-side

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

  

注意:使用Date构造函数解析日期字符串(和   Date.parse,它们是等效的)因为强烈气馁   浏览器差异和不一致。

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

如果用户位于许多不同的时区,如何处理?

2 个答案:

答案 0 :(得分:1)

如果您使用

 new Date().getTime();

它会在1970-01-01之后为客户所在的当前时区返回一个毫秒时间戳。然后可以将其转换回任何语言的日期。

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

希望这可以看出来

答案 1 :(得分:1)

new Date().getTime();返回一个整数值,作为 1970年1月1日以来客户端计算机上的时间。

由于这是一个整数值,因此它与区域设置,浏览器版本,不同浏览器(IE,Chrome,Mozilla或其他任何东西)无关。

因此,只要客户的时区已知,就可以在客户机器上为您提供一致的结果。

您可以使用getTimezoneOffset API

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

这与new Date().getTime();一起可以为您提供一致的结果。