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

时间:2023-03-08 22:44:01
网页倒计时,动态显示"××年还剩××天××时××分××秒"
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);