jQuery倒计时错误:返回NaN

时间:2011-07-11 16:25:10

标签: jquery countdown

我正在使用这个jQuery倒计时插件:http://keith-wood.name/countdown.html

我正在尝试设置倒数日期:

var countdownValue = $('#countdown-value').text();
alert(countdownValue);
var newYear = new Date(countdownValue); 
$('#countdown-l').countdown({until: newYear}); 

Div to set value:

<div id="countdown-value" style="display:none">2011, 07-1, 13</div>

警报正在返回'2011,07-1,13'。

这就是我在数据库中输入的内容,所以这是正确的。但倒计时每个号码都会返回NaN。但是,如果我直接输入2011, 07-1, 13,我会得到倒计时的工作。是否有隐藏的字符,或者这是以不同的方式解析的?

我有点迷失在这里。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

问题在于,当您实例化Date这样的对象时:

new Date(2011, 07-1, 13)

(顺便说一下,07-1只是解析为6,不确定是否有意这样做

您使用以下版本调用Date构造函数:

new Date(year, month, day)

这很成功,因为它创建了一个有效的日期。当您使用Date调用$('#countdown-value').text()构造函数时,您正在使用带字符串的版本初始化新的Date,实质上是:

new Date("2011, 07-1, 13")

哪个不是valid date string

要解决此问题,您可以设置检索有效日期字符串的日期,也可以解析值(请注意,要使此方法轻松实现,您必须将07-1更改为“ 6" )

var countdownValue = $('#countdown-value').text();
var values = countdownValue.split(",");

alert(countdownValue);
var newYear = new Date(parseInt(values[0], 10), parseInt(values[1], 10), parseInt(values[2], 10)); 
$('#countdown-1').countdown({until: newYear }); 

http://jsfiddle.net/vtFkd/