js指定日期增加指定月份的实现方法


Posted in Javascript onDecember 19, 2018

前言

本文主要给大家介绍的是关于js实现指定日期增加指定月份的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

首先,大致思路为:

     1. 先将字符串格式的时间类型转化为Date类型

     2. 再将Date类型的时间增加指定月份

     3. 最后将Date类型的时间在转化为字符串类型

示例代码:

1. 先将字符串格式的时间类型转化为Date类型

var str = '2018-01-01 00:00:00'; //字符串格式的时间类型
 var str1 = str.replace(/-/g,'/'); //'2018/01/01 00:00:00'
 var date = new Date(Date.parse(str1)); //date格式的时间类型

2. 再将Date类型的时间增加指定月份

var nowDate = date.addMonth(3); //date格式的时间类型

Date.prototype.addMonth = function (addMonth) {
 var y = this.getFullYear();
 var m = this.getMonth();
 var nextY = y;
 var nextM = m;
 //如果当前月+要加上的月>11 这里之所以用11是因为 js的月份从0开始
 if ((m + addMonth)> 11) {
  nextY = y + 1;
  nextM = parseInt(m + addMonth) - 12;
 } else {
  nextM = this.getMonth() + addMonth
 }
 var daysInNextMonth = Date.daysInMonth(nextY, nextM);
 var day = this.getDate();
 if (day > daysInNextMonth) {
  day = daysInNextMonth;
 }
 return new Date(nextY, nextM, day);
 };
 Date.daysInMonth = function (year, month) {
 if (month == 1) {
  if (year % 4 == 0 && year % 100 != 0)
  return 29;
  else
  return 28;
 } else if ((month <= 6 && month % 2 == 0) || (month = 6 && month % 2 == 1))
  return 31;
 else
  return 30;
 };

3. 最后将Date类型的时间在转化为字符串类型

var nowStr = nowDate.format('yyyy-MM-dd hh:mm:ss'); //指定字符串格式的时间类型

Date.prototype.format = function (format) {
 var date = {
  "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+)/i.test(format)) {
  format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
 }
 for (var k in date) {
  if (new RegExp("(" + k + ")").test(format)) {
  format = format.replace(RegExp.$1, RegExp.$1.length == 1
   ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
  }
 }
 return format;
 };

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jquery 弹出层实现代码
Oct 30 Javascript
关于JavaScript与HTML的交互事件
Apr 12 Javascript
jQuery实现带滚动线条导航效果的方法
Jan 30 Javascript
纯CSS3代码实现滑动开关效果
Aug 19 Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 Javascript
jQuery中slidedown与slideup方法用法示例
Sep 16 Javascript
jQuery plugin animsition使用小结
Sep 14 jQuery
微信小程序实现简单input正则表达式验证功能示例
Nov 30 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
Oct 01 Javascript
JS如何把字符串转换成json
Feb 21 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
微信小程序 scroll-view的使用案例代码详解
Jun 11 Javascript
动态内存分配导致影响Javascript性能的问题
Dec 18 #Javascript
关于node-bindings无法在Electron中使用的解决办法
Dec 18 #Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 #Javascript
JS监听滚动和id自动定位滚动
Dec 18 #Javascript
JS实现的tab页切换效果完整示例
Dec 18 #Javascript
CryptoJS中AES实现前后端通用加解密技术
Dec 18 #Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 #Javascript
You might like
十天学会php之第十天
2006/10/09 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
关于document.cookie的使用javascript
2010/10/29 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
动态的创建一个元素createElement及删除一个元素
2014/01/24 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
使用SAE部署Python运行环境的教程
2015/05/05 Python
老生常谈Python基础之字符编码
2017/06/14 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
vue常用指令代码实例总结
2020/03/16 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
2015年保洁工作总结范文
2015/04/28 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
Python字典的基础操作
2021/11/01 Python
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL