我在JavaScript中发现了倒数计时,但由于某种原因,它在IE11中无法正常工作。
代码是:
var now = new Date();
var current_year = now.getFullYear();
var next_year = current_year + 1;
var target_date = new Date("May 18, " + current_year).getTime();
var days, hours, minutes, seconds;
var $days = document.getElementById("d");
var $hours = document.getElementById("h");
var $minutes = document.getElementById("m");
var $seconds = document.getElementById("s");
function update() {
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
hours = parseInt(seconds_left / 3600);
seconds_left = seconds_left % 3600;
minutes = parseInt(seconds_left / 60);
seconds = parseInt(seconds_left % 60);
$days.innerHTML = pad(days, 2);
$hours.innerHTML = pad(hours, 2);
$minutes.innerHTML = pad(minutes, 2);
$seconds.innerHTML = pad(seconds, 2);
}
update();
setInterval(update, 1000);
function pad(num, size) {
var s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
当我将日期更改为当天的特定时间时,例如:
var target_date = new Date("May 18, 2014 12:00:00" + current_year).getTime();
我可以在Chrome和Mozilla中正确看到倒数计时,但是在IE11(甚至更低版本)中,它显示为NaN(不是数字)。
谁能帮我?
使用new Date("May 18, 2014 12:00:00" + current_year)
并没有真正的意义,因为它指定了一年两次-一次作为字符串中间的2014年字面量,一次指定包含在内的年份current_year
。
但是除此之外,我猜想IE在接受哪种日期字符串格式方面不太灵活,因此,为了安全起见,您可以分别指定所有日期部分(请注意,月份是从零开始的):
var target_date = new Date(current_year,4,18,12,0,0).getTime();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句