javascript實現(xiàn)日期按月份加減
更新時間:2015年05月15日 09:30:38 投稿:hebedich
JavaScript實現(xiàn)日期加減計算功能代碼實例,因為在js中沒有類似C#中的AddDays方法,所以要想實現(xiàn)日期加減的話,就需要自己寫函數(shù)來實現(xiàn)。這里分享給大家,有需要的小伙伴可以參考下
項目中需要用到,自己寫了一個。javascript日期按月加減
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"> <title></title> <script> function dateToDate(date) { var sDate = new Date(); if (typeof date == 'object' && typeof new Date().getMonth == "function" ) { sDate = date; } else if (typeof date == "string") { var arr = date.split('-') if (arr.length == 3) { sDate = new Date(arr[0] + '-' + arr[1] + '-' + arr[2]); } } return sDate; } function addMonth(date, num) { num = parseInt(num); var sDate = dateToDate(date); var sYear = sDate.getFullYear(); var sMonth = sDate.getMonth() + 1; var sDay = sDate.getDate(); var eYear = sYear; var eMonth = sMonth + num; var eDay = sDay; while (eMonth > 12) { eYear++; eMonth -= 12; } var eDate = new Date(eYear, eMonth - 1, eDay); while (eDate.getMonth() != eMonth - 1) { eDay--; eDate = new Date(eYear, eMonth - 1, eDay); } return eDate; } function calcDate() { var d = document.getElementById('date').value; var n = document.getElementById('num').value; var eDate = addMonth(d, n); document.getElementById('result').innerHTML = eDate.getFullYear() + '-' + (eDate.getMonth() + 1) + '-' + eDate.getDate(); } </script> </head> <body> <input type="date" id="date" /> <input type="number" id="num" value="1" /> <input type="button" value="計算" onclick="calcDate()" /> <div id="result"></div> </body> </html>
方法二:
<script language="javascript"> Date.prototype.Format = function(fmt) { //代碼作者: meizz var o = { "M+" : this.getMonth() + 1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), //小時 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth() + 3) / 3), //季度 "S" : this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; } Date.prototype.addDays = function(d) { this.setDate(this.getDate() + d); }; Date.prototype.addWeeks = function(w) { this.addDays(w * 7); }; Date.prototype.addMonths= function(m) { var d = this.getDate(); this.setMonth(this.getMonth() + m); if (this.getDate() < d) this.setDate(0); }; Date.prototype.addYears = function(y) { var m = this.getMonth(); this.setFullYear(this.getFullYear() + y); if (m < this.getMonth()) { this.setDate(0); } }; </script>
方法三:
<script> function DateAdd(interval,number,date) { /* *--------------- DateAdd(interval,number,date) ----------------- * DateAdd(interval,number,date) * 功能:實現(xiàn)VBScript的DateAdd功能. * 參數(shù):interval,字符串表達(dá)式,表示要添加的時間間隔. * 參數(shù):number,數(shù)值表達(dá)式,表示要添加的時間間隔的個數(shù). * 參數(shù):date,時間對象. * 返回:新的時間對象. * var now = new Date(); * var newDate = DateAdd( "d ",5,now); * author:wanghr100(灰豆寶寶.net) * update:2004-5-28 11:46 *--------------- DateAdd(interval,number,date) ----------------- */ switch(interval) { case "y " : { date.setFullYear(date.getFullYear()+number); return date; break; } case "q " : { date.setMonth(date.getMonth()+number*3); return date; break; } case "m " : { date.setMonth(date.getMonth()+number); return date; break; } case "w " : { date.setDate(date.getDate()+number*7); return date; break; } case "d " : { date.setDate(date.getDate()+number); return date; break; } case "h " : { date.setHours(date.getHours()+number); return date; break; } case "m " : { date.setMinutes(date.getMinutes()+number); return date; break; } case "s " : { date.setSeconds(date.getSeconds()+number); return date; break; } default : { date.setDate(d.getDate()+number); return date; break; } } } var now = new Date(); //加五天. var newDate = DateAdd( "d ",5,now); alert(newDate.toLocaleDateString()) //加兩個月. newDate = DateAdd( "m ",2,now); alert(newDate.toLocaleDateString()) //加一年 newDate = DateAdd( "y ",1,now); alert(newDate.toLocaleDateString()) </script>
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
JS實現(xiàn)網(wǎng)站樓層導(dǎo)航效果代碼實例
這篇文章主要介紹了JS實現(xiàn)網(wǎng)站樓層導(dǎo)航效果代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06JavaScript使用指針操作實現(xiàn)約瑟夫問題實例
這篇文章主要介紹了JavaScript使用指針操作實現(xiàn)約瑟夫問題,實例分析了javascript模擬數(shù)組指針操作的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04JS的encodeURI和java的URLDecoder.decode使用介紹
如果不想在url中看到有明文可以使用js的encodeURI的URLDecoder.decode一起使用一起來把url加密下,下面有個不錯的示例,大家不妨參考下2014-05-05BootStrap中的Fontawesome 圖標(biāo)
這篇文章主要介紹了BootStrap中Fontawesome 圖標(biāo)的相關(guān)知識,需要的朋友可以參考下2017-05-05js使用for循環(huán)及if語句判斷多個一樣的name
這篇文章主要介紹了js使用for循環(huán)機if語句判斷多個一樣的name,此法比較實用,需要的朋友可以參考下2014-09-09js使用html()或text()方法獲取設(shè)置p標(biāo)簽的顯示的值
html()方法可以用來讀取或者設(shè)置某個元素中的HTML內(nèi)容,text()方法可以用來讀取或者沒置某個元素中的文本內(nèi)容2014-08-08