ios 上 new Date() 出现NaN的问题

这个问题我一定要记录一下,悼念一下我为了解决这个bug花费了两天时间,也为其他小伙伴可以顺利避免这个bug而写.
在我拿到后台的数据之后,根据需求,我需要给对象添加一下自定义的属性.按照vue文档使用this.$set()方法添加,在pc上一点问题都没有,这个字段可以展示出来,但在手机端这个字段就展示不出来了,初步怀疑是这个字段在手机上没有添加进去.但是vue挂网这个添加属性的方法应该是没有错的,由于自己使用的是mint-ui这个框架,于是就各种开始百度mint-ui添加字段加不进去的问题,但是依旧没有找到解决方法.
经过重新一番思考,按照代码顺序一步一个alert(),(由于手机无法看到日志,所以只能使用alert),因为我的代码里面有关于时间转换时间戳的问题,所以在执行到转换时间戳这一步手机上弹出了NAN这个问题,但是pc上却没有.考虑到问题可能就出现在这,于是经过一番百度,发现new Date('2017-09-18 14:58:32').getTime(); //在ios上死活拿不到时间戳显示NaN ,ios手机不能正确转换这个格式,但是安卓手机可以.
于是又加了一个转换,把所有的”-“替换成”/”,在ios就可以转换了.即转换成这种方式new Date("2017/04/28 23:59:59").getTime(),那么在安卓和ios就都没有问题了.
下面附上我的代码,仅供参考

let ttime=item.matchDate+" "+item.time;
let time0 = ttime.replace(/-/g,"/");
let time1=new Date(time0).getTime();
let curTime=new Date().getTime();
if(time1<curTime){
    this.$set(item,"status",'已完成');
    }else if(time1==curTime){
        this.$set(item,"status",'进行中');
        this.$set(item,"timing",'进行中');
    }if(time1>curTime){
        this.$set(item,"status",'未开始');
        this.$set(item,"vs",'VS');
    }

这个问题真是坑死我了,不过也知道了解决bug要从代码入手,要一步一步分析自己的代码,确定自己的代码没有问题(因为一般官方文档是不会有问题的)

猜你喜欢

转载自blog.csdn.net/bhq1711617151/article/details/81872857