js字符串转日期兼容性

今天遇到个bug,安卓上是好的,ios就不行。然后我就把可能用到的值都打印出来,发现日期比较一项在苹果机上就显示false,而谷歌浏览器是true。突然回忆起以前开发遇到过类似的问题,都是出在字符串转换成日期上,谷歌浏览器能转换成功的,在火狐和ios上就转换不了。于是我在火狐浏览器的控制台里打了以下两行,都是报错:Invalid Date

只有把"2017.06.19”字符串转换成“2017/06/19”才可能转换成正确的日期。可以用正则表达式实现快速转换 "2017.06.19".replace(/\./g, "/")

 

有时候“2017-06-19”这样的用new Date()转换日期在ios也有问题,也可以用正则表达式 .replace(/-/g, "/") 来变成“2017/06/19”再转换成日期

注意:在苹果手机上,new Date().toLocaleDateString()返回的是“2017年6月20日”这样的字符串,而不是像谷歌浏览器中的返回“2017/06/20”

 

posted @ 2017-06-20 18:18  方小川  阅读(354)  评论(0编辑  收藏  举报