前两天写一个折线图,测试发现在safari浏览器有bug,排查了半天,发现是Safari对时间格式处理有问题。

结论

先说结论,我们经常用的时间格式YYYY-MM-DD HH:mm:ss在Safari浏览器中是不支持的。
chrome浏览器中:
image.png
可以看到new Date可以正确识别该格式的时间。再看在safari浏览器中:
image.png

思考

原生的Date对象不支持,那试下第三方插件是否有兼容这个格式,试了下常见的moment.js插件,效果如下:
image.png
发现是可以支持的。
竟然是可以支持的,如我上面所说,我前两天是遇到过这个问题的,而且我当时就是用的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, '/')

好了,就这样-_-!


小学生
495 声望4 粉丝

路漫漫其修远兮,吾将上下而求索。