js根据当前时间和结束时间做倒计时(还有XXX天XXX时XXX分XXX秒),当天,不需要XXX天数,剩余0小时,不需要显示XXX时,剩余0分钟,不需要显示XXX分
1. js方法
/**
1. 根据结束时间和当前时间的倒计时
2.
3. @param id:html 代码的id值
4. @param endDateStr:结束时间
*/
function getAcquisitionCountdown(id, endDateStr) {
// 结束时间
var endDate = new Date(endDateStr.replace(/-/g,"/"));
// 当前服务器时间
var now = new Date($.ajax({
async : false
}).getResponseHeader("Date"));
nowDate = new Date(now.replace(/-/g,"/"));
// 相差的总秒数
var totalSeconds = parseInt((endDate - nowDate) / 1000);
// 天数(转换成字符串类型,以防网不好的情况下,出现now)
var day = totalSeconds / (60 * 60 * 24);
var days=null;
days=day.toString().split(".")[0];
// 取模(余数)
var modulo = totalSeconds % (60 * 60 * 24);
// 小时数
var hours = Math.floor(modulo / (60 * 60));
modulo = modulo % (60 * 60);
// 分钟
var minutes = Math.floor(modulo / 60);
// 秒
var seconds = modulo % 60;
// 输出到页面
if (days != "0" && days>0) {
document.getElementById(id).innerHTML =''剩余"+ days + "天" + hours
+ "时" + minutes + "分" + seconds + "秒";
} else if (days == 0 && hours != 0 && hours>0) {
document.getElementById(id).innerHTML = ''剩余"+ hours + "时"
+ minutes + "分" + seconds + "秒";
} else if (hours == 0 && minutes != 0 && minutes>0) {
document.getElementById(id).innerHTML = ''剩余"+ minutes + "分"
+ seconds + "秒";
} else if (minutes == 0 && seconds != 0 && seconds>0) {
document.getElementById(id).innerHTML = ''剩余"+ seconds + "秒";
} else {
document.getElementById(id).innerHTML = "已结束";
}
// 延迟一秒执行自己
setTimeout(function() {
if (endDate >= nowDate) {
TimeDown(id, endDateStr);
}
}, 1000)
}
//调用TimeDown方法
getAcquisitionCountdown("#shijian", "2018-12-22 14:10:08");
2. HTML代码
<div id="shijian"></div >