javascript实现日期按月份加减
网络编程 2021-07-04 21:48www.168986.cn编程入门
JavaScript实现日期加减计算功能代码实例,因为在js中没有类似C#中的AddDays方法,所以要想实现日期加减的话,就需要自己写函数来实现。这里分享给大家,有需要的小伙伴可以参考下
项目中需要用到,自己写了一个。javascript日期按月加减
<!DOCTYPE html> <html xmlns="http://.w3./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) 功能:实现VBScript的DateAdd功能. 参数:interval,字符串表达式,表示要添加的时间间隔. 参数:number,数值表达式,表示要添加的时间间隔的个数. 参数:date,时间对象. 返回:新的时间对象. var now = new Date(); var newDate = DateAdd( "d ",5,now); author:wanghr100(灰豆宝宝.) 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()+number3); return date; break; } case "m " : { date.setMonth(date.getMonth()+number); return date; break; } case "w " : { date.setDate(date.getDate()+number7); 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>
以上所述就是本文的全部内容了,希望大家能够喜欢。
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指