Chrome 67 错误:历史时区更改
问题描述
更新到 Chrome 后67 号版本中,用户在检索 1970 年之前日期的时区偏移时遇到错误。例如,在欧洲/莫斯科时区:
new Date("1900-01-01T00:00:00").getTimezoneOffset() -150 new Date("2018-05-30T00:00:00").getTimezoneOffset() -180
解释
中1900 年,欧洲/莫斯科时区的偏移量为 02:30:17。 Chrome 67 似乎向下舍入到 02:30 以避免亚分钟偏移,从而导致观察到的行为。
为什么其他浏览器不出现此错误
其他浏览器可能未应用此舍入行为或可能使用不同的时区数据库。
最佳实践
为避免此错误,应用程序不应请求时间1970 年之前日期的时区信息。IANA 时区数据库旨在提供 Unix 纪元以来的准确数据,而早期数据的可靠性较低。
Chrome 67 中更改的可能原因
推测 Chrome 67 可能已经开始捆绑 IANA 时区数据,而不是依赖操作系统数据。这可以解释与以前版本的 Chrome 的行为差异。
以上是为什么 Chrome 67 会产生 1970 年之前日期的时区错误?的详细内容。更多信息请关注PHP中文网其他相关文章!