踩坑之ios手机new Date(yyyy-MM-dd hh:mm:ss).getTime()返回NaN
1、场景:公司的小程序中有一个这样的功能,学生在小程序中,如果在这之前,课程已经结束了且后端返回了对应的复习链接时,用户点击复习的按钮是能打开对应的复习页面的,否则就弹出弹框提示用户不能查看。对应的代码如下:lesson.t_canReview= reviewUrl&& new Date().getTime() >= new Date(res.endTime).getTime
·
1、场景:
公司的小程序中有一个这样的功能,后端返回一个时间,时间格式是yyyy-MM-dd hh:mm:ss,然后前端根据这个时间和当前时间做比较,如果小于当前时间,则用户点击复习的按钮是能打开对应的复习页面的,否则就弹出弹框提示用户不能查看。对应的代码如下:
lesson.t_canReview
=new Date().getTime() >= new Date(res.endTime).getTime()
这样看这个判断逻辑是没有问题的,但是用户在用苹果手机想要查看已经结束的课程的复习的页面时,发现一直提示不能查看,而用安卓手机是能查看的。
2、解决方案:
在排查问题的过程中,在苹果手机打开调试工具时,发现new Date(res.endTime).getTime()打印出的值是NaN。查阅资料才发现其实是ios对于时间格式为yyyy-MM-dd时计算其毫秒值会返回NaN。于是我们只要将时间格式转为yyyy/MM/dd即可解决这个问题
lesson.t_canReview
= new Date().getTime() >= new Date(res.endTime.replace(/-/g, '/')).getTime()
更多推荐
已为社区贡献1条内容
所有评论(0)