1.首先我们要明确NAN是啥?为啥出现的这个?
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
2.既然知道NAN,那到底哪里会出现的这个?
仔细走一遍倒计时会发现new Date('2018-06-18 14:58:32')在IOS上是拿不到时间戳的,部分安卓手机也是NAN的。查自资料发现原来是低版本的Safari解释new Date('2013-10-21')这个对象不一样,在IOS5中的Safari不支持这种写法,而它支持的写法为new Date('2013','10','21'),这样写就能解决"Invalid Date"的问题。
3.解决方案:改变格式
将如下2018-07-28 23:59:59改成2018/07/28 23:59:59
var time='2018-11-21 12:01:22';
var day=new Date(time);
//方案
var day1=new Date(time1);
var time1=time.replace(/-/g,"/");
//方案拓展
var day2=new Date(time1);
var day3=eval("new Date("+ time.replace(/\D+/g,",")+")").getTime();
4.附上代码:
function GetRTime(){
var EndTime= new Date('2018/07/08 09:00:00');
var NowTime = new Date();
var t =EndTime.getTime() - NowTime.getTime();
var d=parseInt(t/ 1000 / 60 / 60 / 24);
h=parseInt(t/ 1000 / 60 / 60 % 24);
m=parseInt(t/ 1000 / 60 % 60);
s=parseInt(t/ 1000 % 60);
d <10 ? d = '0' +d :d =d;
h <10 ? h = '0' +h :h =h;
m <10 ? m = '0' +m :m =m;
s <10 ? s = '0' +s :s =s;
console.log(d+'天'+h+'时'+m+'分'+s+'秒');
if(t < 0){
clearTimeout(GetRTime);
return false;
}
setTimeout(GetRTime,1000);
}
GetRTime();
最后在移动设备运行一下,已经没有NAN了~~~~~
---------------------
作者:简cere
来源:CSDN
原文:https://blog.csdn.net/qq_28004379/article/details/80884425
版权声明:本文为博主原创文章,转载请附上博文链接!