新的Date()。toLocaleString不能在firefox上运行

时间:2016-03-09 11:46:39

标签: javascript html angularjs firefox

在json的回复中我得到GMT格式的日期,如 2016-03-09T09:55:47.107111 。每当我尝试使用以下代码转换为本地日期/时间格式时: -

new Date('2016-03-09T09:55:47.107111').toLocaleString()

我得到这样的输出: -

"09/03/2016, 15:25:47"   Which is correct 

Mozilla Firefox

"3/9/2016, 9:55:47 AM"  Which is wrong 

新日期(' 2016-03-09T09:55:47.107111')。toLocaleString()无法在Firefox上运行。

3 个答案:

答案 0 :(得分:3)

根据MDN specification of Date," dateString"可以是符合IETF的RFC 2822时间戳或ISO8601的版本。你的日期字符串都不是它。我甚至不确定" 107111"在你的字符串的末尾应该是,那么计算机应该如何解决这个问题呢?

一般情况下,建议使用格式为" YYYY-MM-DDTHH:mm:ss.sssZ"的日期字符串。

答案 1 :(得分:1)

在js文件中你写

$scope.date=new Date('2016-03-09T09:55:47.107111');
你写的html文件中的

{{date | date :'dd/MM/yyyy h:mm:ss'}}

它可以在任何浏览器上运行

答案 2 :(得分:0)

您始终可以通过将其传递给toLocaleString函数来指定本地化。 例如:

new Date('2016-03-09T09:55:47.107111').toLocaleString("en-GB");

将导致:

09/03/2016, 11:55:47

在Chrome和& Firefox浏览器。

请注意:

new Date('2016-03-09T09:55:47.107111').toLocaleString("en-GB");

new Date('2016-03-09 09:55:47.107111').toLocaleString("en-GB");

将为您提供不同的时间输出(首先将添加UTC的区域设置差异,第二个不会。