在magento上的倒计时计时器中出现NaN错误.知道为什么吗


NaN error in countdown timer on magento Any idea why?

我正在为magento平台上的电子商务页面制作倒计时计时器。我在网上得到了一些编码帮助,这是Java脚本编码:

<script type="text/javascript">// <![CDATA[
function Countdown(then) {
    this.then = then;
    function setElement(id, value) {
        if (value.length < 2) {
            value = "0" + value;
        }
        window.document.getElementById(id).innerHTML = value;
    }
    function countdown() {
        now  = new Date("");
        diff = new Date("this.then - now");
        seconds_left  = Math.floor(diff.valueOf() / 1000);
        seconds  = Math.floor(seconds_left / 1) % 60;
        minutes  = Math.floor(seconds_left / 60) % 60;
        hours    = Math.floor(seconds_left / 3600) % 24;
        days     = Math.floor(seconds_left / 86400) % 86400;
        setElement('countdown-days', days);
        setElement('countdown-hours', hours);
        setElement('countdown-minutes', minutes);
        setElement('countdown-seconds', seconds);
        countdown.timer = setTimeout(countdown, 1000);
    }
    function start() {
        this.timer = setTimeout(countdown, 1000);
    }
    start(then);
 }
 Countdown(new Date(""));
</script>

我收到一个错误NaN天NaN:NaN:我不明白为什么。我需要一些帮助magento后端的特价起始日期为2016年8月1日,结束日期为2016月14日。我哪里错了?

Date函数的可用语法如下所示

new Date();
new Date(value);
new Date(dateString);
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);

你的情况并非如此。

你想做的是(简化的)

now  = new Date("");
t = new Date("");
console.log(new Date("t - now"))

打印无效日期

关于日期对象的更多信息

使用这个脚本,它运行得很好。

<script>
    var end = new Date('2016-10-26 00:00:00');
    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) {
            clearInterval(timer);
            document.getElementById('countdown').innerHTML = 'EXPIRED!';
            return;
        }
        var days = Math.floor(distance / _day);
        var hours = Math.floor((distance % _day) / _hour);
        var minutes = Math.floor((distance % _hour) / _minute);
        var seconds = Math.floor((distance % _minute) / _second);
        document.getElementById('countdown').innerHTML = days + 'days ';
        document.getElementById('countdown').innerHTML += hours + 'hrs ';
        document.getElementById('countdown').innerHTML += minutes + 'mins';
        document.getElementById('countdown').innerHTML += seconds + 'secs';
    }
    timer = setInterval(showRemaining, 1000);
</script>
<div id="countdown"></div>

我破解了代码。请确保您使用的格式为:YYYY-MM-DD-HR-MM-SS(年、月、日、小时、分钟、秒)
我忘记了一个"0",它给了我一个错误。我修复后效果很好。