0

我正在为一个站点开发一个倒数计时器——它实际上没有目的,它就在那里。所以基本上在午夜它从 24 小时开始,倒计时一整天,在午夜再次重置。我有计时器工作,唯一的问题是我想确保它永远不会说“0 HRS,0 MIN” - 它应该保持在 1 MIN 直到它重置。我以为我找到了一种方法,但我不确定它是否有效:

var date = new Date();
var month = date.getMonth();
var day = date.getDate();
var dayOfWeek = date.getDay();
var hours = {start: new Date(date.getFullYear(), month, day), end: new Date(date.getFullYear(), month, day)};


updateCountDown();
$(document).ready(function(){
    setInterval('updateCountDown()', 1000);
});

function updateCountDown(){
    var date = new Date();
    var hourDiff = 23 - date.getHours();
    var minDiff = 59 - date.getMinutes();


    $('span.hours').html(23-date.getHours());
    $('span.minutes').html(59 - date.getMinutes());

    if (hourDiff == 0 && minDiff == 0 ) {
     minDiff = 1;
    };
};

有没有办法测试这个而不等到今晚午夜看看会发生什么?我尝试将 updateCountDown 中的 new Date() 更改为 new Date('2/5/13 4:30:00') 但它没有用。

4

2 回答 2

1

minDiff您在显示变量后正在更新它。

试试这个:

var date = new Date();
var month = date.getMonth();
var day = date.getDate();
var dayOfWeek = date.getDay();
var hours = {start: new Date(date.getFullYear(), month, day), end: new Date(date.getFullYear(), month, day)};


updateCountDown();
$(document).ready(function(){
    setInterval(updateCountDown, 1000);
 });

function updateCountDown(){
    var date = new Date();
    var hourDiff = 23 - date.getHours();
    var minDiff = 59 - date.getMinutes();

    if (hourDiff == 0 && minDiff == 0 ) {
      minDiff = 1;
    };

    $('span.hours').html(hourDiff);
    $('span.minutes').html(minDiff);
};
于 2013-02-05T23:46:35.477 回答
0

要进行测试,只需将new Date()方法中updateCountDown的调用替换为new Date(2013, 01, 01, 23, 59, 50).

并使用 Marcus 发布的代码。

于 2013-02-05T23:48:37.033 回答