Date.getUTCHours() - Chrome,Firefox和Internet Explorer中的不同输出

dar*_*ong 3 javascript firefox google-chrome date

给出以下代码:

var date = new Date("2014-02-26T15:52:30");
date.getUTCHours();
// Outputs
// Chrome: 15
// Firefox: 18
// IE: 18
Run Code Online (Sandbox Code Playgroud)

我不确定我应该使用哪种日期方法.Date.getHours在FF和IE中返回正确的小时,​​但在Chrome中不正确.并且Date.getUTCHours()正显示出我正确的日期,而不是在IE和FF确定.无论如何有什么不同?什么UTC日期应该是?

我想知道是否有CrossBrowser本机解决方案...我不想使用库来做这么简单的事情.

Nic*_*ico 6

Chrome会将您的日期解释var date = new Date("2014-02-26T15:52:30");var date = new Date("2014-02-26T15:52:30Z");(注意z,表示utc时区).

FF和IE解释var date = new Date("2014-02-26T15:52:30");为在当前用户的时区,在我的情况下,它将是var date = new Date("2014-02-26T15:52:30-05:00");(GMT-0500)

我强烈建议您坚持使用UTC来满足计算需求,并在想要向用户显示日期时执行时区转换.时区可以成为一个真正的痛苦.