如何在Chrome和Firefox中将此字符串转换为Javascript日期?

时间:2016-03-30 18:35:13

标签: javascript google-chrome firefox

我在Javascript中有一个字符串:'2008-03-09 18:02:29 UTC' 我想将它转换为日期对象。所以我做了以下几点:

> new Date('2008-03-09 18:02:29 UTC')

这适用于Google Chrome(版本49.0.2623.87,64位):

> new Date('2008-03-09 18:02:29 UTC');
Sun Mar 09 2008 14:02:29 GMT-0400 (EDT)

但是当我在Firefox(版本45.0.1)中做同样的想法时,它失败了:

> new Date('2008-03-09 18:02:29 UTC');
Invalid Date

我是否可以编写一些可以在两种浏览器中正确执行此转换的代码?

3 个答案:

答案 0 :(得分:2)

使用连字符( - )而不是斜杠(/)可以在WebKit浏览器中使用,但不能在IE或FF中使用。注意YYYY-MM-DD的UTC解析!

here

编辑:正如其他答案所提到的那样,对于这类东西,时刻是一个很棒的库。

答案 1 :(得分:1)

你听说过moment.js吗?请参阅Moment.js

您可以像这样解决这个问题:

moment('2008-03-09 18:02:29 UTC')

如果你想要Date对象,你可以使用它:

moment('2008-03-09 18:02:29 UTC').toDate()

答案 2 :(得分:1)

如果您可以在UI中添加库,请尝试使用moment.js(http://momentjs.com/docs/#/parsing/special-formats/)。

您甚至可以指定自定义格式。

<强>更新

试试这个:

moment.utc("2008-03-09 18:02:29 UTC", "YYYY-MM-DD HH:mm:ss");

我在Chrome和Firefox上都尝试过这种方式,效果很好。 请记住,如果您不使用.utc(),则时间将获得您的时区,而不是UTC。