前两天写一个折线图,测试发现在safari浏览器有bug,排查了半天,发现是Safari对时间格式处理有问题。
结论
先说结论,我们经常用的时间格式YYYY-MM-DD HH:mm:ss在Safari浏览器中是不支持的。
chrome浏览器中:
可以看到new Date可以正确识别该格式的时间。再看在safari浏览器中:
思考
原生的Date对象不支持,那试下第三方插件是否有兼容这个格式,试了下常见的moment.js插件,效果如下:
发现是可以支持的。
竟然是可以支持的,如我上面所说,我前两天是遇到过这个问题的,而且我当时就是用的moment,没想到今天再试竟然可以了。我排查了下,用了旧的moment.js的包,也可以了,那就是现在的Safari浏览器更新了版本后,moment.js支持了,但是原生new Date还是不支持。所以建议还是不要直接在Safari中使用。
解决办法
我觉得最好的解决办法就是把YYYY-MM-DD HH:mm:ss格式的代码转为YYYY/MM/DD HH:mm:ss,这是safari浏览器支持的格式。
"2021-11-11 11:11:11".replace(/-/g, '/')
好了,就这样-_-!