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 常用操作代码
Mar 14 Javascript
将文本输入框内容加入表中的js代码
Aug 18 Javascript
js加入收藏夹代码(兼容ie/ff/op)
May 16 Javascript
详解Bootstrap glyphicons字体图标
Jan 04 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
Oct 05 Javascript
JavaScript中关键字 in 的使用方法详解
Oct 17 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
Apr 19 Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 24 Javascript
微信小程序项目实践之主页tab选项实现
Jul 18 Javascript
Vue通过ref父子组件拿值方法
Sep 12 Javascript
javascript中floor使用方法总结
Feb 02 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
建立动态的WML站点(二)
2006/10/09 PHP
PHP可变函数学习小结
2015/11/29 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
sina的lightbox效果。
2007/01/09 Javascript
prototype Element学习笔记(篇二)
2008/10/26 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
JS继承 笔记
2011/07/13 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
python的pdb调试命令的命令整理及实例
2017/07/12 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
Python中一般处理中文的几种方法
2019/03/06 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
班组长安全职责
2014/01/05 职场文书
出生公证委托书
2014/04/03 职场文书
网站创业计划书
2014/04/30 职场文书
团日活动总结书格式
2014/05/08 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
教师求职信
2014/06/17 职场文书
无私奉献演讲稿
2014/09/04 职场文书
投标承诺函范文
2015/01/21 职场文书
继承权公证书范本
2015/01/23 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书