这个脚本在iPad上给了我NaN

时间:2014-03-05 05:41:14

标签: javascript

此代码应该给我直到2014年3月20日的秒数。它在我的电脑上工作正常,但它在我的iPad上不起作用。
它在狩猎和铬中都给了我NaN 可能有什么不对?

function timer() {
    var day = "20";
    var month = "03"; 
    var year = "2014";
    var hour = "00"; 
    var minute = "00"; 
    var second = "00";

    var ToDate = new Date(month+ ","+day+","+year+" "+hour+":"+minute+":"+second);
    var now = Date.now();
    var NewDate = ToDate - now;

    var SecCount = Math.round(NewDate / 1000);
    document.write(SecCount);
    setTimeout(timer,1000);
}

这个问题在这里有点相同:Javascript age calculation on IPad,但我不确定如何实现代码

date = date.replace(/-/,"/").replace(/-/,"/"); //substitute - with /

进入我的代码。
谢谢你

P.S。这是网站的链接:http://ss-cal.com/lab

1 个答案:

答案 0 :(得分:2)

您是否尝试过var ToDate = new Date(year, month, day, hour, minute, second);来创建Date对象?

这是另一种创建Date对象的方法,而不必解析字符串中的值,因为你已经将它们分开,它甚至可能更快。

请注意,从0 = 1月开始计算月数,3 = 4月而不是3月

请参阅此小提琴,了解一些替代方案:http://jsfiddle.net/52XH2/2/

// ISO standard format
var ToDate = new Date(year + "-" + month + "-" + day + "T" + hour + ":" + minute + ":" + second);
var now = Date.now();
console.log(ToDate.toString());
var NewDate = ToDate - now;

请参阅此内容以供参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date