Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在用当前时间更新元素时,如何在jQuery中将秒转换为分钟?_Javascript - Fatal编程技术网

Javascript 在用当前时间更新元素时,如何在jQuery中将秒转换为分钟?

Javascript 在用当前时间更新元素时,如何在jQuery中将秒转换为分钟?,javascript,Javascript,因此,我看到了许多以静态hr/min/sec显示分配秒数的方法。但是,我正在尝试生成一个可视化倒计时计时器: $('#someelement').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds'))); 我的计数器在每1秒触发一次的设置间隔内减少: //....... var counter = redirectTimer; jQuery('#WarningDialogMsg')

因此,我看到了许多以静态hr/min/sec显示分配秒数的方法。但是,我正在尝试生成一个可视化倒计时计时器:

$('#someelement').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds')));
我的计数器在每1秒触发一次的设置间隔内减少:

//.......
var counter = redirectTimer;
jQuery('#WarningDialogMsg').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds')));

//........

SetInternval( function() {
    counter -= 1;
    secCounter = Math.floor(counter % 60);
    minCounter = Math.floor(counter / 60);

//.......

  $('#someelement').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds')));
}, 1000)
这是一个两分钟计数器,但我不想显示120秒。我想显示1:59和倒计时


我已经用上面的方法让它工作了,但我的主要问题是:有没有更优雅的方法来完成上面的工作?注意:我正在重定向一次计数器==0。

我使用Keith Wood的jQuery插件节省了时间。

试试看

或者这个:

var old_date = new Date('Wed Dec 29 2010 21:56:33');
var time_update = dateDiff(old_date, new Date()); // {"diff":119000,"ms":0,"s":59,"m":1,"h":0,"d":0}


function dateDiff(date1, date2) {
    var diff = Date.parse(date2) - Date.parse(date1);

    if (diff < 0) return false;
    var objDate = isNaN(diff) ? NaN : {
        diff: diff,
        ms: Math.floor(diff % 1000),
        s: Math.floor(diff / 1000 % 60),
        m: Math.floor(diff / 60000 % 60),
        h: Math.floor(diff / 3600000 % 24),
        d: Math.floor(diff / 86400000)
    };
    return objDate;
}

secCounter中的Math.floor=Math.floor计数器%60;不需要排队。不管怎样,它看起来很好。