我正在制作一个计时器,需要倒数到我在学校的下一个讲座。我已经制作了一个数组,其中包含我即将到来的讲座的日期和计时器,该计时器正在倒计时到数组中的第一个日期。
问题是:如果计时器低于0,我希望它转到数组中的下一个日期并倒数到此日期。现在我做了一个if语句:
if (seconds < 0 ) {
firstLecture = i++;
console.log(i)
}
我可以在我的控制台中看到我每秒都在更新,但我的计时器在第一次约会时仍在继续。我该如何解决这个问题?我需要一个循环或类似的东西吗?
var lectures = ["April 16, 2015 16:25:00", "April 16, 2015 19:25:00", "April 17, 2015 10:10:00", "April 17, 2015 14:20:00"]
var i = 0
var firstLecture = lectures[i];
var date = new Date(firstLecture);
var $display = $('#countdown');
countdown($display, date);
setInterval(function () { countdown($display, date); }, 1000);
function countdown($display, collision) {
var now = new Date();
now.setHours(now.getHours() + (get_time_zone_offset()+2));
var seconds = Math.floor((collision.getTime() - now.getTime()) * 0.001);
var minutes = (Math.floor(seconds/60) % 60); //60 minutes in an hour
var hours = (Math.floor(seconds/60/60 * 10)/10) % 24; //24 hours in a day
var days = Math.floor((seconds/60/60/24));
//var weeks = Math.ceil((days/7) * 100)/100;
$display
.html
(
'<p>' +
collision +
'<br>seconds: ' + seconds +
'<br>minutes: ' + minutes +
'<br>hours: ' + hours +
'<br>days: ' + days +
//'<br>weeks: ' + weeks +
'</p>'
);
if (seconds < 0 ) {
firstLecture = i++;
console.log(i)
}
}
function get_time_zone_offset() {
var current_date = new Date();
var gmt_offset = current_date.getTimezoneOffset( ) / 60;
return gmt_offset;
}
答案 0 :(得分:0)
没有完成整个过程,您的行:
firstLecture = i++;
看起来应该是:
firstLecture = lectures[++i];
现在你将它设置为一个整数,当我相信你想把它设置为数组中的下一个项目时。