将每小时的jquery计时器更改为每天

时间:2018-10-20 07:38:04

标签: javascript jquery

大家好,我尝试过(但失败了)将这个简单的jquery代码更改为倒数24小时而不是当前的1小时。我有一个名为getMinutesUntilNextHour()的函数,该函数应计算并显示24小时倒计时:

function getMinutesUntilNextHour() { 

    var now = new Date();
    var mins = now.getMinutes();
    var secs = now.getSeconds();
    var cur_mins = 60 - mins; 
    var cur_secs = 60 - secs;

    if (cur_secs == 60) {
        cur_mins = cur_mins;
        cur_secs = 0;
    } else {
        cur_mins = cur_mins - 1;
    }

    if(secs > 50){
         var response = (cur_mins) + ":0" + (cur_secs);
    } else if(cur_secs == 0) {
         var response = (cur_mins) + ":00";
    } else {
        var response = (cur_mins) + ":" + (cur_secs);
    }
    jQuery('#time_till_hour').text(function(){
        return response; 
    });
    setTimeout(getMinutesUntilNextHour, 1000);
}

getMinutesUntilNextHour();

我先添加了now.getHours(),然后又添加了cur_hours = 24 - hours,但显示不正确。如果当前的hours = 0部分应该添加一些内容?

提前感谢您可能提供的帮助

1 个答案:

答案 0 :(得分:0)

也许您可以通过以下方式调整和简化getMinutesUntilNextHour()函数:

function getMinutesUntilNextHour() { 
    var now = new Date();
    var hours = now.getHours();
    var mins = now.getMinutes();
    var secs = now.getSeconds();
    
    // Compute time remaining per unit
    var cur_hours = 23 - hours; 
    var cur_mins = 60 - mins; 
    var cur_secs = 60 - secs;
    
    // Correct zero padding of hours if needed
    if(cur_hours < 10) {
    	cur_hours = '0' + cur_hours;
    }
    
    // Correct zero padding of minutes if needed
    if(cur_mins < 10) {
    	cur_mins = '0' + cur_mins;
    }
    
    // Correct zero padding of seconds if needed
    if(cur_secs < 10) {
    	cur_secs = '0' + cur_secs;
    }
    
    // Format the countdown string
    var response = cur_hours + ':' + cur_mins + ':' + cur_secs;
    
    jQuery('#time_till_hour').text(response);
    setTimeout(getMinutesUntilNextHour, 1000);
}

getMinutesUntilNextHour();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div id="time_till_hour">
</div>

希望有帮助!