javascript 设置目标日期和时间明天整点

javascript set target date and time tomorrow at hour

我正在尝试制作一个倒数计时器,它可以根据一天中的不同时间倒计时几个小时。

这是我当时尝试设置功能的方法。因此,如果在 14.00 之前,它将倒计时到 14.00,如果在 14.00 之后,它将倒计时到 20.00。 20.00 后,显示倒计时到明天 14.00。

我试过这样设置目标时间,但是设置日期 "tomorrow at 14.00" 我就是无法开始工作。

var target_date = new Date();
var currentdate = new Date();

if (currentdate.getHours() > 0 && currentdate.getHours() < 14) {
   target_date.setHours(14,0,0,0);
}
else if (currentdate.getHours() > 14 && currentdate.getHours() < 20) {
   target_date.setHours(20,0,0,0); 
} 
else {
   target_date.setDate(currentdate.getDate()+1).setHours(16,0,0,0); // if 20-24, count down to tomorrow at 14.00
}

倒计时脚本的其余部分是

var days, hours, minutes, seconds;

var countdown = document.getElementById("countdown");

setInterval(function () {

   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);  
   countdown.innerHTML = hours + "t "
   + minutes + "m";  
 }, 1000)};
 target_date.setDate(currentdate.getDate()+1).setHours(16,0,0,0); 

setDate() 方法没有 return Date 对象,所以这个序列不起作用

你应该写

 target_date.setDate(currentdate.getDate()+1);
 target_date.setHours(16,0,0,0);