看别人的网站,经常会发现有些会在网页的底部加上“本站已运行x天x时x分x秒”,一开始以为实现起来还比较麻烦(单纯的认为起始数据在文件或者数据库中进行了保存),后来网上查看才发现,纯粹就是一个简单的js方法就可以实现。
稍稍麻烦的就是,要计算两个时间之间的年数差,必须要考虑平年和闰年的问题。
拓展:怎样才是闰年?
需要同时满足两个条件:
1、年份能被4整除;
2、年份若是100的整数倍的话,需被400整除,否则是平年
比如:1900年能被4整除,但是因为其是100的整数倍,却不能被400整除,所以是平年
代码如下:
//初始化时间
//为了提高兼容性注意创建日期的格式,还要添加引号
var start = new Date("2000/12/1");
//把以下内容放到script标签内,创建id为times的div,并开启下面一条语句注释
//show_date_time();
function show_date_time(){
//周期性调用show_date_time()方法
setTimeout("show_date_time()", 1000);
var current = new Date();
//总秒数
var millisecond = Math.floor((current.getTime() - start.getTime())/1000);
//总天数
var allDay = Math.floor(millisecond/(24*60*60));
//注意同getYear的区别
var startYear = start.getFullYear();
var currentYear = current.getFullYear();
//闰年个数
var leapYear = 0;
for(var i=startYear;i
if(isLeapYear(i)){
leapYear++;
}
}
//年数
var year = Math.floor((allDay - leapYear*366)/365 + leapYear);;
//天数
var day;
if(allDay > 366){
day = (allDay - leapYear*366)%365;
}else{
day = allDay;
}
//取余数(秒)
var remainder = millisecond%(24*60*60);
//小时数
var hour = Math.floor(remainder/(60*60));
//分钟数
var minute = Math.floor(remainder%(60*60)/60);
//秒数
var second = remainder - hour*60*60 - minute*60;
var span = "本站已运行" + (year>0 ? (year + "年"):"") + day + "天"
+ hour + "小时" + minute + "分" + second + "秒" ;
document.getElementById("times").innerHTML = span;
}
//判断是否是闰年
function isLeapYear(year){
if((year%4==0 && year%100!=0)||(year%100==0 && year%400==0)){
return true;
}
return false;
}
本文固定链接:心知博客 » js计算时间差,包括年、天、时、分、秒
本站内容除特别标注外均为原创,欢迎转载,但请保留出处!