2 回答

TA貢獻1829條經驗 獲得超7個贊
您的代碼"Thursday, March 12, 00:59"在 Firefox 和"Thursday, March 12, 24:59"Chrome (80.0.3987.149) 中提供給我
Chrome 80 https://support.google.com/chrome/thread/29828561?hl=en似乎存在一個錯誤,自 2 月起開放,但關于是否修復以及如何修復的說法不多??紤]支持它。
根據那里發布的評論,您可以通過將hour12屬性替換為hourCycle: 'h23'.
new Intl.DateTimeFormat(
'en',
{
weekday: 'long',
month: 'long',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
hourCycle: 'h23'
}
).format(new Date('2020-03-11T23:59:00Z')
)
// "Thursday, March 12, 00:59"
這似乎對我有用

TA貢獻1797條經驗 獲得超6個贊
問題似乎是 HourCycle 和 langauge 的默認設置en,這是您所期望的h23,但 Chrome 正在使用h24. 您可以按照toniedzwiedz 的描述修復它,或者您可以為語言標簽提供合適的國家/地區代碼以強制 HourCycle 默認為h23,例如 GB:
let d = new Date(2020,2,1,0,23);
let opts = { hour12: false, hour: 'numeric' };
console.log(d.toLocaleString('en', opts)); // 24 (Chrome), 00 others
console.log(d.toLocaleString('en-GB', opts)); // 00 all
添加回答
舉報