JavaScript計算兩個日期差異天數

JeffChang
4 min readAug 3, 2017

--

除了在Java後端驗算之外

前端JavaScript也能馬上計算

/**
* javascript傳入起始日與結束
* 日期格式為民國年月日(EX.1060802)
* 傳入 1060702,1060802 會回傳31天
* 傳入 1060901,1061001 會回傳30天
* @param sDate
* @param eDate
* @return 天數
*/
function calRocIntervalDays(sDate,eDate){
var msecPerMinute = 1000 * 60;
var msecPerHour = msecPerMinute * 60;
var msecPerDay = msecPerHour * 24;
sDate = leftPad(sDate,7,'0');
eDate = leftPad(eDate,7,'0');
var begDateStr = "" + sDate.substring(3,5) + "/" + sDate.substring(5) + "/" + (Number(sDate.substring(0,3)) + Number(1911));
var endDateStr = "" + eDate.substring(3,5) + "/" + eDate.substring(5) + "/" + (Number(eDate.substring(0,3)) + Number(1911));
var begDate = new Date(begDateStr);
var endDate = new Date(endDateStr);
var interval = endDate.getTime() - begDate.getTime();
var days = Math.floor(interval / msecPerDay);
return days;
}
/**
* javascript傳入起始日與結束
* 日期格式為西元年月日(EX.20170801)
* 傳入 20170702,20170802 會回傳31天
* 傳入 20170901,20171001 會回傳30天
* @param sDate
* @param eDate
* @return 天數
*/
function calCEIntervalDays(sDate,eDate){
var msecPerMinute = 1000 * 60;
var msecPerHour = msecPerMinute * 60;
var msecPerDay = msecPerHour * 24;
var begDateStr = "" + sDate.substring(4,6) + "/" + sDate.substring(6) + "/" + sDate.substring(0,4);
var endDateStr = "" + eDate.substring(4,6) + "/" + eDate.substring(6) + "/" + eDate.substring(0,4);
var begDate = new Date(begDateStr);
var endDate = new Date(endDateStr);
var interval = endDate.getTime() - begDate.getTime();
var days = Math.floor(interval / msecPerDay);

return days;
}
/**
* 向左補零
* Ex:leftPad(3,3,'0')->003
* @param val [原值]
* @param padLen [補足長度]
* @param padVal [補足值]
* @return [description]
*/
function leftPad(val, padLen, padVal) {
if (val.toString().length < padLen) {
for (var i = 1; i < padLen; i++) {
val = padVal + val;
if(val.toString().length >= padLen){
break;
}
}
}
return val;
}

參考了這篇後改寫

可以輸入

1.民國年月日

2.西元年月日

計算差異日期

目前已知限制就是民國年月日(7碼)西元年(8碼)

若日期為民國100年以前則需要補0到七碼

Ps.My GitHub

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

JeffChang
JeffChang

Written by JeffChang

Java Backend Engineer In DDIM.

No responses yet

Write a response