我在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
我是否可以编写一些可以在两种浏览器中正确执行此转换的代码?
答案 0 :(得分:2)
使用连字符( - )而不是斜杠(/)可以在WebKit浏览器中使用,但不能在IE或FF中使用。注意YYYY-MM-DD的UTC解析!
编辑:正如其他答案所提到的那样,对于这类东西,时刻是一个很棒的库。
答案 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。