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()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐