Chrome new Date().toLocaleString在镶边上不起作用

voj3qocg  于 2022-12-06  发布在  Go
关注(0)|答案(1)|浏览(170)

我想以当地时区显示UTC日期'2020-01- 14 T17:43:37.000Z'。
我得到这样的输出:-
新日期('2020 -01- 14 T17:43:37.000Z').toLocaleString(未定义,{日期样式:“中”,时间样式:'长'});

**镀 chrome **

'2020年1月14日,格林尼治标准时间下午11:13:37 +5:30'
"火狐"
2020年1月14日,美国标准时间晚上11:13:37
我怎样才能在所有浏览器上一致地显示本地时区的日期?

dba5bblo

dba5bblo1#

toLocalString不保证一致性,唯一能保证的是输出的格式在给定的选项下可以合理地显示给用户。
也就是说,如果指定en-IN作为区域设置代码,Asia/Kolkata作为时区,就可以得到所需的结果。

const result = new Date('2020-01-14T17:43:37.000Z')
  .toLocaleString('en-IN', {
    dateStyle: "medium",
    timeStyle: 'long',
    timeZone: 'Asia/Kolkata'
  });
console.log(result);

但是,您可能不想将这些字符串硬编码到应用程序中。在原始代码中,undefined表示使用用户的默认区域设置,而缺少timeZone则表示使用用户的默认时区。如果用户恰好具有en-INAsia/Kolkata,则他们将看到与上面相同的结果。

相关问题