Joh*_*rty 6 javascript safari firefox google-chrome mobile-safari
当我将日期字符串2019-02-16T10:00:00
转换为 timezone 中的 JS Date 对象GMT+0100 (CET)
,然后调用.toISOString()
我希望获得 ISO date/time 2019-12-01T09:10:10.000Z
(-1 hours)。
但是,我所看到的是:
Safari (不正确):
new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T10:10:10.000Z
Run Code Online (Sandbox Code Playgroud)
铬 (正确):
new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T09:10:10.000Z
Run Code Online (Sandbox Code Playgroud)
火狐 (正确):
new Date('2019-12-01T10:10:10').toISOString()
\\ returns 2019-12-01T09:10:10.000Z
Run Code Online (Sandbox Code Playgroud)
我是否遗漏了什么,或者这是一个已知的 Safari 问题?
Joh*_*rty 15
我发现了问题。Safari 无法将格式中的日期字符串2019-12-01T10:10:10
转换为Date
对象而不会弄乱它。解决方案(找到here)是重新格式化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', ' ');
Run Code Online (Sandbox Code Playgroud)
Safari (正确):
new Date(dateString).toISOString()
// returns 2019-12-01T09:10:10.000Z
Run Code Online (Sandbox Code Playgroud)
铬 (正确):
new Date(dateString).toISOString()
// returns 2019-12-01T09:10:10.000Z
Run Code Online (Sandbox Code Playgroud)
火狐 (正确):
new Date(dateString).toISOString()
// returns 2019-12-01T09:10:10.000Z
Run Code Online (Sandbox Code Playgroud)
希望这可以为下一个沮丧的开发人员节省几个小时!
归档时间: |
|
查看次数: |
2730 次 |
最近记录: |