Javascript計(jì)算時間差的函數(shù)分享
核心代碼
/* * 獲得時間差,時間格式為 年-月-日 小時:分鐘:秒 或者 年/月/日 小時:分鐘:秒 * 其中,年月日為全格式,例如 : 2010-10-12 01:00:00 * 返回精度為:秒,分,小時,天 */ function GetDateDiff(startTime, endTime, diffType) { //將xxxx-xx-xx的時間格式,轉(zhuǎn)換為 xxxx/xx/xx的格式 startTime = startTime.replace(/\-/g, "/"); endTime = endTime.replace(/\-/g, "/"); //將計(jì)算間隔類性字符轉(zhuǎn)換為小寫 diffType = diffType.toLowerCase(); var sTime = new Date(startTime); //開始時間 var eTime = new Date(endTime); //結(jié)束時間 //作為除數(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)用方法也很簡單:
GetDateDiff("2010-10-11 00:00:00", "2010-10-11 00:01:40", "day")
這個是計(jì)算天數(shù)
GetDateDiff("2010-10-11 00:00:00", "2010-10-11 00:01:40", "seond")是計(jì)算秒數(shù)
下面腳本之家小編再為大家分析一個不錯的
<html> <script type="text/javascript"> alert(dealDate("2018-01-20","2018-01-28")); //提示前面的日期小于后面的日期 function dealDate(date1,date2){ date1 = new Date(date1);//如果傳進(jìn)來的是"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ì)算月份差,推算幾年幾個月 var res = (year2-year1)*12+(month2-month1);//月份差 var difYear = Math.floor(res/12); var difMonth = res%12; return ((difYear!=0)?(difYear+"年"):"")+difMonth+"個月"; }else if(day1==dayMax1&&day2<dayMax2){ //開始日期是月底,結(jié)束日期不是 //計(jì)算開始日期到結(jié)束日期上一個月的月底,再加上結(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+"個月"):"")+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+"個月"):"")+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+"個月"):"")+difDay+"天"; } } } </script> </html>
運(yùn)行測試返回天數(shù)的,大家可以根據(jù)需要參考上面的代碼修改即可。
相關(guān)文章
記錄幾個javascript有關(guān)的小細(xì)節(jié)
記錄幾個javascript有關(guān)的小細(xì)節(jié)...2007-04-04javascript動態(tài)添加樣式(行內(nèi)式/嵌入式/外鏈?zhǔn)降纫?guī)則)
添加CSS的方式有行內(nèi)式、嵌入式、外鏈?zhǔn)健?dǎo)入式,下面為大家詳細(xì)介紹下javascript動態(tài)添加以上樣式規(guī)則的方法,感興趣的朋友可以參考下哈2013-06-06點(diǎn)擊頁面任何位置隱藏div的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄c(diǎn)擊頁面任何位置隱藏div的實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09JS+CSS實(shí)現(xiàn)自動切換的網(wǎng)頁滑動門菜單效果代碼
這篇文章主要介紹了JS+CSS實(shí)現(xiàn)自動切換的網(wǎng)頁滑動門菜單效果代碼,涉及JavaScript基于時間函數(shù)動態(tài)變換頁面tab樣式的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09JavaScript實(shí)現(xiàn)頁面跳轉(zhuǎn)的5種方法總結(jié)
在前臺開發(fā)中會涉及頁面跳轉(zhuǎn)的問題,下面這篇文章主要給大家總結(jié)介紹了關(guān)于JavaScript實(shí)現(xiàn)頁面跳轉(zhuǎn)的5種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12