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

如何在Chrome和Firefox中将此字符串转换为Javascript日期?,javascript,google-chrome,firefox,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版本4

我在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

是否有一些代码可以在两种浏览器中正确地进行转换?

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


编辑:正如其他答案所提到的,对于这类东西,《时刻》是一个很好的库

你听说过moment.js吗?请看

您可以这样解决此问题:

moment('2008-03-09 18:02:29 UTC')
如果您想要日期对象,可以使用:

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

如果可以将库添加到UI,请尝试使用矩.js

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

更新:

试试这个:

moment.utc("2008-03-09 18:02:29 UTC", "YYYY-MM-DD HH:mm:ss");
我在Chrome和Firefox上都试用过,效果很好。
请记住,如果您不使用.utc,那么时间会得到您的时区,而不是utc。

我认为这会对您有所帮助,这是否有效?新日期'2008-03-09 18:02:29 UTC'。替换/-/g,/;至少向反对者解释一下,为什么这个答案不能解决这个问题?我之所以反对,是因为提到一个库应该是一个注释,更确切的问题是:是否有一些我可以编写的代码可以在两种浏览器中正确地进行转换?请阅读以下内容:如果你给他密码,我会把你的答案投给他!很公平,你有一个更好的答案对不起,我不想成为一个固执己见的人,我在回答我最初的几个问题时也因此受到了抨击,我现在投了赞成票,谢谢@Omarjmh现在呢?如果它有效,为什么它应该是一个评论?@Omarjmh你是对的,谢谢你的提示。这使我们在接下来的比赛中有所进步。