我希望对特定日期和时间(2018年1月10日,19:30)进行倒计时。这在很大程度上我能够做到。下面的代码显示剩余的天数,小时数,分钟数和秒数。
棘手的一点是要获得一定的时间段。倒计时应响应以下内容: 1.在截止日期和时间显示消息'现在上线'。这是2018年1月10日19:30。 2.同一天,但在19:30之前应该说'今晚上班' 3.截止日期前一整天(从00:00到23:59)它应该说'最后一天' 在那之前的整整几天,它应该说“要走很多天”
第1步和第2步我管理了,但是我在截止日期前一整天和之前的整整几天都遇到了问题。那是因为我无法在截止日期前(以及之前的几天)定义完整的一天。因为它在1月10日19:30之前的1天计算“1天”(因此也需要考虑19:30的小时/分钟)。
步骤1和2我在if循环中进行了管理,但我无法弄清楚如何执行第3步和第4步。第3步应该说“计算一天,但在2018年1月10日00:00之前”。因此它应该减去19:30到达januari 2018 00:00-23:59。第4步也一样。有人可以修复我的代码吗?
// Get todays date and time
var now = new Date().getTime();
// Set the date we're counting down to
var countDownDate = new Date("Januari 10, 2018 19:30").getTime();
// Find the distance between now an the count down date
var distance = countDownDate - now;
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Display the result
this.timeleft.text = days + "d " + hours + "h " + minutes + "m " + seconds + "s ";
// countdown day 19:30
if ((days == 0) && (hours == 0) && (minutes == 0)) {
this.countdown.text = "NOW GOING LIVE!";
// countday day 00:00 - 19.30
} else if ((days == 0) && (hours <= 19) && (minutes <= 30)) {
this.countdown.text = "GOING LIVE TONIGHT!";
// 9 January 00:00 - 23:59
} else if ((days <= 1) && (hours >= 19) && (minutes >= 30)) {
this.countdown.text = "LAST DAY";
// days before 10 January
} else if (days >= 1) {
this.countdown.text = "MANY DAYS TO GO";
}
答案 0 :(得分:0)
由于“截止日期”是硬编码的,因此您可以对所有内容进行硬编码并最终得到一些非常简单的内容:
var now = new Date().getTime();
var lastDayThreshold = new Date("January 9, 2018 00:00").getTime();
var liveTonightThreshold = new Date("January 10, 2018 00:00").getTime();
var countDownDate = new Date("January 10, 2018 19:30").getTime();
if (now < lastDayThreshold) this.countdown.text = "MANY DAYS TO GO";
else if(now < liveTonightThreshold) this.countdown.text = "LAST DAY";
else if(now < countDownDate) this.countdown.text = "LIVE TONIGHT";
else this.countdown.text = "NOW GOING LIVE";
答案 1 :(得分:0)
var oneday = 1000 * 60 * 60 * 24;
var countDownDate = new Date("January 10, 2018 19:30").getTime();
var lastDayThreshold = new Date(countDownDate - oneday "00:00").getTime();
var liveTonightThreshold = new Date(countDownDate "00:00").getTime();
你会看到我的问题:对于lastDayTreshold我可以减去倒计时的一天但是它会考虑前一天的19:30,而不是00:00。而对于liveTonightThreshold,我也无法指定我的意思是倒计时00:00。
有没有办法做到这一点?然后我只需要指定倒计时的日期和时间,剩下的就会自己计算出来。