网页倒计时,动态显示"××年还剩××天××时××分××秒"

时间:2021-12-11 22:03:47
var target = document.getElementById('target');
function getTimeString(){  // 要计算任意两个日期的时间差只要修改currentDate和currentYearDate的值即可
	var currentDate = new Date();
	var year = currentDate.getFullYear();
	var currentYearDate = new Date(year,11,30,23,59,59); //这里应该写11而不是12,因为Date.getDay()方法返回数值总是比当前月份小1
	var time = (currentYearDate - currentDate) / 1000; //得到距今年底还有多少秒
	var day = Math.floor(time / (24*60*60));
	var hours = Math.floor(time % (24*60*60) / (60*60));
	var minutes = Math.floor(time % (24*60*60) % (60*60) / 60);
	var seconds = Math.floor(time % (24*60*60) % (60*60) % 60);
	var str = year +"年还剩"+ day +"天"+ hours +"小时" + minutes +"分" + seconds +"秒";
	target.innerHTML = str;
}
setInterval(getTimeString,1000);

下面这个方法也行,就是性能不太好

var target = document.getElementById('target');
function getTimeString(){
	var date = new Date();
	var eachMonthDay = [31,28,31,30,31,30,31,31,30,31,30,31];
	if(date.getFullYear() % 4 == 0){
		eachmonthDay[1] = 29;
	}
	var dateString = date.getFullYear() + "年还剩" + (11-date.getMonth()) + "月";
	//计算还剩多少天,以当前月天数为基准
	dateString += eachMonthDay[date.getMonth()] - date.getDate() + "天";
	//计算还剩多少小时,以当天为基准
	dateString += (24 - date.getHours() - 1) + "小时";
	//计算还剩多少分钟,以当前时间为准
	dateString += (60 - date.getMinutes() -1) + "分";
	//计算还剩多少秒,以当前时间为准
	dateString += (60 - date.getSeconds()) + "秒";
	target.innerHTML = dateString;
}
var timer = setInterval(getTimeString,1000);