new Date()方法在Safari浏览器的一个bug

今天测试同学给我提了个bug,就是在一个商品信息的卡片中,有个字段是显示商品的上新时间,后端返回给前端是一个这样格式的字符串:”2019-01-07 23:46:50”,前端从里面提取时和分,因为这个字符串可以直接转成一个Date对象,所以二话不说就new一个对象:

new Date('2019-01-07 23:46:50')

然后分别使用getHours()和getMinutes()方法获取到时和分,并渲染到页面上。

测试同学进行测试时,就发现这个奇怪的问题了,chrome浏览器的模拟器显示正常,Android手机显示正常,偏偏在IOS手机上显示NaN:NaN。

经查阅资料,这大概是Safari浏览器的一个bug,需要先将字符串里面的“-”换成“/”后在调用new方法,然后就没问题了。