Javascript計(jì)算時(shí)間差的函數(shù)分享
核心代碼
/*
* 獲得時(shí)間差,時(shí)間格式為 年-月-日 小時(shí):分鐘:秒 或者 年/月/日 小時(shí):分鐘:秒
* 其中,年月日為全格式,例如 : 2010-10-12 01:00:00
* 返回精度為:秒,分,小時(shí),天
*/
function GetDateDiff(startTime, endTime, diffType) {
//將xxxx-xx-xx的時(shí)間格式,轉(zhuǎn)換為 xxxx/xx/xx的格式
startTime = startTime.replace(/\-/g, "/");
endTime = endTime.replace(/\-/g, "/");
//將計(jì)算間隔類性字符轉(zhuǎn)換為小寫
diffType = diffType.toLowerCase();
var sTime = new Date(startTime); //開始時(shí)間
var eTime = new Date(endTime); //結(jié)束時(shí)間
//作為除數(shù)的數(shù)字
var divNum = 1;
switch (diffType) {
case "second":
divNum = 1000;
break;
case "minute":
divNum = 1000 * 60;
break;
case "hour":
divNum = 1000 * 3600;
break;
case "day":
divNum = 1000 * 3600 * 24;
break;
default:
break;
}
return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
}
調(diào)用方法也很簡(jiǎn)單:
GetDateDiff("2010-10-11 00:00:00", "2010-10-11 00:01:40", "day")
這個(gè)是計(jì)算天數(shù)
GetDateDiff("2010-10-11 00:00:00", "2010-10-11 00:01:40", "seond")是計(jì)算秒數(shù)
下面腳本之家小編再為大家分析一個(gè)不錯(cuò)的
<html>
<script type="text/javascript">
alert(dealDate("2018-01-20","2018-01-28"));
//提示前面的日期小于后面的日期
function dealDate(date1,date2){
date1 = new Date(date1);//如果傳進(jìn)來(lái)的是"yyyy-MM-dd"形式的字符串
date2 = new Date(date2);
var year1 = date1.getFullYear();
var month1 = date1.getMonth()+1;
var day1 = date1.getDate();
var dateMax1 = new Date(year1,month1,0);
var dayMax1 = dateMax1.getDate();
var year2 = date2.getFullYear();
var month2 = date2.getMonth()+1;
var day2 = date2.getDate();
var dateMax2 = new Date(year2,month2,0);
var dayMax2 = dateMax2.getDate();
if(day1==dayMax1&&day2==dayMax2){
//開始日期和結(jié)束日期都是月底
//直接計(jì)算月份差,推算幾年幾個(gè)月
var res = (year2-year1)*12+(month2-month1);//月份差
var difYear = Math.floor(res/12);
var difMonth = res%12;
return ((difYear!=0)?(difYear+"年"):"")+difMonth+"個(gè)月";
}else if(day1==dayMax1&&day2<dayMax2){
//開始日期是月底,結(jié)束日期不是
//計(jì)算開始日期到結(jié)束日期上一個(gè)月的月底,再加上結(jié)束日期的天數(shù)
var month3 = month2-1;
var res = (year2-year1)*12+(month3-month1);//月份差
var difYear = Math.floor(res/12);
var difMonth = res%12;
var difDay = day2;
return ((difYear!=0)?(difYear+"年"):"")+((difMonth!=0)?(difMonth+"個(gè)月"):"")+difDay+"天";
}else if(day1<dayMax1&&day2<dayMax2){
//開始日期和結(jié)束日期都不是月底
//情況1,day1<day2
if(day1<=day2){
var res = (year2-year1)*12+(month2-month1);//月份差
var difYear = Math.floor(res/12);
var difMonth = res%12;
var difDay = day2-day1;
return ((difYear!=0)?(difYear+"年"):"")+((difMonth!=0)?(difMonth+"個(gè)月"):"")+difDay+"天";
}else{
var month3 = month2-1;
var res = (year2-year1)*12+(month3-month1);//月份差
var difYear = Math.floor(res/12);
var difMonth = res%12;
var difDayTemp = day1-day2;
var dateMax3 = new Date(year2,month3,0);
var dayMax3 = dateMax3.getDate();
var difDay = dayMax3-difDayTemp;
return ((difYear!=0)?(difYear+"年"):"")+((difMonth!=0)?(difMonth+"個(gè)月"):"")+difDay+"天";
}
}
}
</script>
</html>
運(yùn)行測(cè)試返回天數(shù)的,大家可以根據(jù)需要參考上面的代碼修改即可。
相關(guān)文章
解決layui數(shù)據(jù)表格table的橫向滾動(dòng)條顯示問(wèn)題
今天小編就為大家分享一篇解決layui數(shù)據(jù)表格table的橫向滾動(dòng)條顯示問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
smartupload實(shí)現(xiàn)文件上傳時(shí)獲取表單數(shù)據(jù)(推薦)
這篇文章主要介紹了smartupload實(shí)現(xiàn)文件上傳時(shí)獲取表單數(shù)據(jù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12
微信小程序基于ColorUI構(gòu)建皮皮蝦短視頻去水印組件
這篇文章主要介紹了微信小程序-基于ColorUI構(gòu)建皮皮蝦短視頻去水印組件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-11-11
原生JavaScript實(shí)現(xiàn)幻燈片效果
這篇文章主要為大家詳細(xì)介紹了原生JavaScript實(shí)現(xiàn)幻燈片效果,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02
基于JS+Canves實(shí)現(xiàn)點(diǎn)擊按鈕水波紋效果
本文給大家分享基于js和canves實(shí)現(xiàn)點(diǎn)擊按鈕水波紋效果,效果非常逼真,對(duì)此感興趣的朋友一起看看吧2016-09-09
在js(jquery)中獲得文本框焦點(diǎn)和失去焦點(diǎn)的方法
文章介紹兩個(gè)方法和種是利用javascript onFocus onBlur來(lái)判斷焦點(diǎn)和失去焦點(diǎn),加一種是利用jquery $("p").blur(); 或$("p").blur(fn)來(lái)實(shí)現(xiàn),有需要的朋友可以參考一下2012-12-12

