我有一个JavaScript代码,它以en-CA
format显示当前日期。
date = new Date();
console.log(date.toLocaleDateString('en-CA'));
以前en-CA
区域设置将日期格式设置为yyyy-MM-dd
(2023-02-24)。然而,到今天为止,这些日期突然开始显示为M/d/yyyy
(2/24/2023),而我没有对代码做任何更改。我在两台运行Chrome、Firefox和Edge的Windows 10和11计算机上重现了这个问题。
为什么en-CA
环境开始将日期格式化为M/d/yyyy
而不是yyyy-MM-dd
?
1条答案
按热度按时间ekqde3dh1#
显然,
en-CA
在Chrome 110和Firefox 110中发生了变化。.toLocaleDateString('en-CA')
的确切格式不可移植,在较新的浏览器中会中断!最近在ICU 72浏览器(Chrome 110和Firefox 110 beta)中,它从yyyy-MM-dd
更改为M/d/yyyy
。请不要对区域设置的特定格式做出假设。请使用基于.toISOString()
的答案之一节点v19.1.0的a GitHub Issue中也注明了这一点。
Node〉= v19.1.0附带了更新版本的ICU(i18 n库),这就是为什么会有区别。
没有错误,它按预期工作。