Math.floor正在返回NaN

时间:2016-06-01 14:05:32

标签: javascript nan

在Chrome中,这种方法很好但在IE和Firefox中我得到了NaN。欢迎任何帮助。

基本上这应该是一个简单的倒计时功能。如果我也做错了,请告诉我。



var start_date = "09 Sep 16";

var end = new Date(start_date); // set expiry date and time..

var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour *24
var timer;

function showRemaining()
{
    var now = new Date();
    var distance = end - now;
    if (distance < 0 ) {
       // handle expiry here..
       clearInterval( timer ); // stop the timer from continuing ..
       alert('Expired'); // alert a message that the timer has expired..

       return; // break out of the function so that we do not update the counters with negative values..
    }
    var days = Math.floor(distance / _day);
    document.getElementById('date').innerHTML = ' ' + days + ' ';

}
timer = setInterval(showRemaining, 1000);
&#13;
Count down: <div id="date"></div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:4)

从我的控制台:

> new Date("09 Sep 16")
< [date] Invalid Date

任何涉及无效日期的数学运算都会导致NaN。

您应该使用ISO-8601 date format指定日期(所以new Date("2016-09-09"))或使用非字符串解析版本(new Date(2016,8,9)

答案 1 :(得分:0)

这是firefox显示的内容: 这就是Math.floor给出NaN的原因

enter image description here