js根据当前时间和结束时间做倒计时(还有XXX天XXX时XXX分XXX秒)

js根据当前时间和结束时间做倒计时(还有XXX天XXX时XXX分XXX秒),当天,不需要XXX天数,剩余0小时,不需要显示XXX时,剩余0分钟,不需要显示XXX分

    • 1. js方法
    • 2. HTML代码

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代码

你可能感兴趣的:(web)