Intl.DateTimeFormat在2位数字的月份+日期(IE 11)上不输出分隔符

时间:2018-07-25 08:59:59

标签: javascript intl

我在Intl.DateTimeFormat MDN中遇到了错误

环境

Windows 7上的Internet Explorer 11.0.6900.19080

错误

当月份和日期仅使用“两位数”选项时,该功能不输出任何分隔符,对于/en还是对于{{1}是. }。仅在Windows 7上的Internet Explorer中会发生这种情况。Windows 10上的Internet Explorer 11 + Edge可以正常工作。未经测试低于11。

  

Internet Explorer

de
  

Chrome

Intl.DateTimeFormat('en', {month: "2-digit", day: "2-digit"}).format(new Date());
> "‎07‎ ‎25"

Intl.DateTimeFormat('en', {year: "numeric", month: "2-digit", day: "2-digit"}).format(new Date());
> "‎07‎/‎25‎/‎2018"

上下文

发生此错误时,我使用了Intl.DateTimeFormat('en', {month: "2-digit", day: "2-digit"}).format(new Date()); > "07/25" Intl.DateTimeFormat('en', {year: "numeric", month: "2-digit", day: "2-digit"}).format(new Date()); > "07/25/2018" ,并将错误追溯到本机react-intl

Intl.DateTimeFormat()

1 个答案:

答案 0 :(得分:2)

根据caniuse.com DateTimeFormat,已对发布版本oct 17 ,2013的IE11添加了全面支持,因此您的Windows 7可能具有较旧的版本,您可以通过单击来检查版本号旁边的链接。

enter image description here

要解决您的问题,您可以

  • 更新IE11(我认为这不是解决方案),这仅对您有效
  • 根据您的应用支持的语言手动添加分隔符

Intl.DateTimeFormat('en', {
    month: "2-digit",
    day: "2-digit"
  })
  .format(new Date()).split(" ").join("/");

  • 使用以下polyfill获得全面支持