何喜阳博客

苹果手机new Date()转换时间时出现NaN的原因和解决方案

在制作一个商城项目时,发现有些时间在苹果 IOS 系统上显示 NaN-NaN-NaN 的问题,而安卓设备都是正常的。经过排查发现出现问题的字段后端返回的格式是 2017-08-12 23:00:00 这种,而 - 分割的时间在苹果手机和低版本IE浏览器中上使用new Date()进行转换时就会出现错误

以下代码在 ios 执行会出现 NaN 转换错误:

const Time = new Date('2017-08-12 23:00:00')

以下代码在 ios 和安卓都可以正常解析:

const Time = new Date('2017/08/12 23:00:00')

知道了问题的原因,我们在使用前就可以通过正则对内容进行处理,或者和后端约定返回符合要求的格式,如果是我们自己进行转换可以使用这个 js 代码。

// 通过replace方法把 - 替换为 / 
const Time = new Date('2017-08-12 23:00:00'.replace(/-/g, '/'))













































































































































































转换后就可以正常调用 getFullYear() ,getMonth(),getDate() 这些方法进行使用了。

以上就是全部内容了。如果你觉得内容有帮助,可以扫码打赏,请我吃一顿饭。

微信支付宝

当前页面地址:https://hexiyang.cn/article/1574839076.html

内容基于 《自由转载-非商用-非衍生-保持署名》 协议发布,允许非商用转载,需要保留作者姓名和当前页面链接。