[英]returning a negative countdown using moment.js
我创建了一个倒数计时,但它返回的是负数而不是正数。 我研究了发生这种情况的原因,但是没有运气。 有谁知道为什么倒计时可以返回负数? 在我的代码中我否定了它? 提前致谢!
var now = moment();
var targetDay = now.format("2020-11-03", "dddd, MMMM Do YYYY");
var countDown= Math.floor(moment().diff(targetDay, 'seconds'));
var Days, Minutes,Hours,Seconds;
setInterval(function(){
// Updating Days
Days =pad(Math.floor(countDown / 86400),2);
//updating Hours
Hours = pad(Math.floor((countDown - (Days * 86400)) / 3600),2);
// Updating Minutes
Minutes =pad(Math.floor((countDown - (Days * 86400) - (Hours * 3600)) / 60),2);
// Updating Seconds
Seconds = pad(Math.floor((countDown - (Days * 86400) - (Hours* 3600) - (Minutes * 60))), 2);
// Updation our HTML view
document.getElementById("days").innerHTML=Days + ' Days';
document.getElementById("hours").innerHTML=Hours + ' Hours';
document.getElementById("minutes").innerHTML=Minutes+ ' Minutes';
document.getElementById("seconds").innerHTML=Seconds + ' Seconds';
// Decrement
countDown--;
if(countDown === 0){
countDown= Math.floor(moment().diff(targetDay, 'seconds'));
}
},1000);
// Function for padding the seconds i.e limit it only to 2 digits
function pad(num, size) {
var s = num + "";
while (s.length < size) s = "0" + s;
return s;
}
引用momentjs文档:
默认情况下,moment#diff将返回一个四舍五入的数字(向下表示正数,向上表示负数)。如果该时刻早于传递给moment.fn.diff的时刻,则返回值将为负数。
因此,要解决此问题,您应该使用以下代码
var now = moment();
var targetDay = moment('2020-11-23', 'YYYY-MM-DD');
var countDown= Math.floor(targetDay.diff(now, 'seconds'));
值将为正数,因为targetDay时刻晚于传递给moment.diff的时刻。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.