当我将日期字符串2019-02-16T10:00:00
转换为timezone中的JS Date对象GMT+0100 (CET)
,然后调用时,.toISOString()
我希望获得ISO日期/时间2019-12-01T09:10:10.000Z
(-1小时)。
但是,我看到的是:
Safari (错误):
new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T10:10:10.000Z
Chrome (正确):
new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T09:10:10.000Z
FireFox (正确):
new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T09:10:10.000Z
我是否缺少某些东西,或者这是已知的Safari问题?
我发现了问题。Safari无法将日期格式的日期字符串2019-12-01T10:10:10
转换为Date
对象,而无需对其进行任何操作。解决方案(在此处找到)是重新格式化2019/12/01 10:10:10
所有浏览器都支持的格式。
// convert into YYYY/MM/DD HH:MM:SS
var dateString = '2019-12-01T10:10:10'.replace(/-/g, '/').replace('T', ' ');
Safari (正确):
new Date(dateString).toISOString()
\\ returns 2019-12-01T09:10:10.000Z
Chrome (正确):
new Date(dateString).toISOString()
\\ returns 2019-12-01T09:10:10.000Z
FireFox (正确):
new Date(dateString).toISOString()
\\ returns 2019-12-01T09:10:10.000Z
希望这可以节省下一个沮丧的开发人员几个小时!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句