JS處理日期計算(按照年月日進行增減運算)

2021-08-22 14:50:35 字數 1363 閱讀 8622

本分只簡單實現了增加 月份 和 天數 的功能,減法功能暫時沒做,讀者可以自己簡單實現。

年份的計算更簡單,只需要看增減後是否為閏年,如果是閏年的話看看月份是否為二月,如果為二月的話看看日期是否為合理並相應地調整即可。

為了方便我為string型別變數增加了endwith方法用來判斷字串結尾字元(m代表增減月份,y代表增減年份,d代表增減天數)。

// 為string型別變數增加endwith方法用於判斷字串的結尾

string.prototype.endwith=function(endstr)

// 小於10的數字前加0

function formatsmallnum (num)

return newnum

}var monthbs = [1,0,1,0,1,0,1,1,0,1,0,1] // 定義月份的大小

// 處理加減月時,當日大於28時,將新的日在新的月份中合理化

function adjustnewday (newyear, newmonth, newday) else else }}

return newadjustedday;

}// 獲取當月份最大天數

function getmonthmaxdays (newyear, month) else else }}

return newmonthdays;

}// 用來計算增減天數的遞迴

function recursiondays (year, month, day, delaytime) else

return recursiondays(newyear, newmonth, newday, newdelay) }}

// 日期計算

function addtime(date, delay)

newday = adjustnewday(newyear, newmonth, newday);

newmonth = formatsmallnum(newmonth);

newday = formatsmallnum(newday);

var newdate = newyear + "" + newmonth + "" + newday; // 組裝新日期

}if (delay.endwith("d"))

return newdate;

}

由於需求不同,讀者使用時應按照自己需要的格式調整返回值及具體細節。

在參考**中 addtime 方法第乙個引數傳入的日期應為 20180810 這種格式的日期,第二個引數應為 3m (三個月)、 15m (十五個月)、 5y (五年)、 520d (五百二十天)等格式。且**中的返回值格同樣為 20180810 這樣的格式。

進行日期年月日的加減

data lv date b like sy datum.data date ruzi like sy datum.call function rp calc date in interval exporting date date ruzi days 0 天數加n或者減n 不加也不減 寫0 mon...

js處理年月日下拉列表變化

function onload yearchange 年份改變,沒啥好說的,月日下拉列表清空重排就行了 function yearchange var daylist document.getelementbyid daylist daylist.innerhtml for var i 0 i 31...

js獲取當前時間年份,處理年月日

js中獲得當前時間年份 月份 日期 獲取完整的日期 var date new date var y date.getfullyear var m date.getmonth 1 m m 10 0 m m var d time.getdate d d 10 0 d d y 年份 m 月份 d 日期 c...