new Date().toLocaleString 在 Firefox 上不起作用

new Date().toLocaleString not working on firefox

本文关键字:Firefox 不起作用 toLocaleString Date new      更新时间:2023-09-26

在 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 

new Date('2016-03-09T09:55:47.107111').toLocaleString() 在 Firefox 上不起作用。

根据 Date 的 MDN 规范,"dateString" 可以是符合 IETF 的 RFC 2822 时间戳,也可以是 ISO8601 的版本。您的日期字符串都不是。我什至不确定字符串末尾的"107111"应该是什么,那么计算机应该如何计算呢?

通常,始终建议使用格式为"YYYY-MM-DDTHH:mm:ss.sssZ"的日期字符串。

在 js 文件中你写

$scope.date=new Date('2016-03-09T09:55:47.107111');

在你写的HTML文件中

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

它将适用于任何浏览器

您始终可以通过将本地化传递给 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 的区域设置差异,第二个不会。