1.JS求时间差
注意:如果时间自己自己传入参数,要进行转换。比如date2 = new Date(Date.parse(time1))
var date1=new Date(); //开始时间 alert("aa"); var date2=new Date(); //结束时间 var date3=date2.getTime()-date1.getTime() //时间差的毫秒数 //计算出相差天数 var days=Math.floor(date3/(24*3600*1000)) //计算出小时数 var leave1=date3%(24*3600*1000) //计算天数后剩余的毫秒数 var hours=Math.floor(leave1/(3600*1000)) //计算相差分钟数 var leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数 var minutes=Math.floor(leave2/(60*1000)) //计算相差秒数 var leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数 var seconds=Math.round(leave3/1000) alert(" 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒")
2.显示本站已运行x天x时x分x秒,
稍稍麻烦的就是,要计算两个时间之间的年数差,必须要考虑平年和闰年的问题。
拓展:怎样才是闰年?
需要同时满足两个条件:
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<currentYear;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; }
function GetRequest() {//截取浏览器地址栏传的参数 var url = decodeURI(location.search); //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for (var i = 0; i < strs.length; i++) { theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } } return theRequest; } var Request = GetRequest(); var relateSelect = Request["relateSelect"]; $('#relateSelect').val(relateSelect);获取当前时间 包括年月日 时分秒。。。可以用在初始化时间控件为默认当天时间范围。
function getNowFormatDate() { var day = new Date(); var Year = 0; var Month = 0; var Day = 0; var Hour = 0; var Minute = 0; var Second = 0; var CurrentDate = ""; //初始化时间 Year = day.getFullYear(); Month = day.getMonth() + 1; Day = day.getDate(); Hour = day.getHours(); Minute = day.getMinutes(); Second = day.getSeconds(); CurrentDate = CurrentDate + Year + "-"; if (Month >= 10) { CurrentDate = CurrentDate + Month + "-"; } else { CurrentDate = CurrentDate + "0" + Month + "-"; } if (Day >= 10) { CurrentDate = CurrentDate + Day; } else { CurrentDate = CurrentDate + "0" + Day; } if (Hour >= 10) { CurrentDate += " " + Hour; } else { CurrentDate += " 0" + Hour; } if (Minute >= 10) { CurrentDate = CurrentDate + ":" + Minute; } else { CurrentDate = CurrentDate + ":0" + Minute; } if (Second >= 10) { CurrentDate = CurrentDate + ":" + Second; } else { CurrentDate = CurrentDate + ":0" + Second; } return CurrentDate; }获取当天开始时间 包括年月日 时分秒
function getTodayFormatDate() { var day = new Date(); var Year = 0; var Month = 0; var Day = 0; var Hour = 0; var Minute = 0; var Second = 0; var CurrentDate = ""; //初始化时间 Year = day.getFullYear(); Month = day.getMonth() + 1; Day = day.getDate(); Hour = day.getHours(); Minute = day.getMinutes(); Second = day.getSeconds(); CurrentDate = CurrentDate + Year + "-"; if (Month >= 10) { CurrentDate = CurrentDate + Month + "-"; } else { CurrentDate = CurrentDate + "0" + Month + "-"; } if (Day >= 10) { CurrentDate = CurrentDate + Day; } else { CurrentDate = CurrentDate + "0" + Day; } CurrentDate += " 00"; CurrentDate = CurrentDate + ":00"; CurrentDate = CurrentDate + ":00"; return CurrentDate; }
格式化时间格式为2018-06-07 15:33
function formatterDateTime(time) {//时间格式转换 var date = new Date(time); var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? ('0' + m) : m; var d = date.getDate(); d = d < 10 ? ('0' + d) : d; var h = date.getHours(); var minute = date.getMinutes(); minute = minute < 10 ? ('0' + minute) : minute; return y + '-' + m + '-' + d + ' ' + h + ':' + minute; }