背景:在项目中发现一个倒计时的功能实现,用到了递归写,感觉好奇,收藏下来!
以下是源码:
//倒计时
function update_last_update()
{
$('.last_update').each(function(index, element){
var lt = $(this).attr('data-val');
if(lt=='NaN'||lt==''){
var waitShow = $(this).attr('waitShow');
if(waitShow=='sd'){
$(this).html('等待手动上架');
}else{
$(this).html('等待系统下架中');
}
return;
}
var intval = parseInt(lt);
if(intval <= 0) {return;}
$(this).attr('data-val', intval-1);
$(this).html(myGoodsCounterClock(intval));
});
window.setTimeout(function(){
update_last_update();
},1000);
}
//倒计时
function myGoodsCounterClock(left_time){
var left_time = parseInt(left_time);
var days_second = 86400;//每天时间
var hours_second = days_second/24;
var minute_second = hours_second / 60;
var str = '';
if(left_time > 0)
{
var days = parseInt(left_time/days_second);
str += (days>0) ? days+'天' : '';
var hours = parseInt((left_time - days * days_second) / hours_second);
str += hours>0 ? hours+'时' : '';
var minutes = parseInt((left_time - days * days_second - hours_second * hours) / minute_second);
str += minutes < 10 ? "0"+minutes+"分" : minutes+"分";
second = left_time - days * days_second - hours_second * hours - minutes * minute_second;
//str += second+'秒';
second = second < 10 ? "0"+second : second;
str += second;
}
return str;
}