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 相关文章推荐
让您的菜单不离网站
Oct 03 Javascript
document.onreadystatechange事件的用法分析
Oct 17 Javascript
JQuery 解析多维的Json数据格式
Nov 02 Javascript
单独使用CKFinder选择图片的方法
Aug 21 Javascript
js常用代码段整理
Nov 30 Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 Javascript
AngularJS执行流程详解
Feb 17 Javascript
js实现倒计时关键代码
May 05 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 Javascript
javascript显示动态时间的方法汇总
Jul 06 Javascript
部署vue+Springboot前后端分离项目的步骤实现
May 31 Javascript
浅析我对JS延迟异步脚本的思考
Oct 12 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 获取一个月第一天与最后一天的代码
2010/05/16 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
PHP生成加减算法方式的验证码实例
2018/03/12 PHP
JavaScript定时器详解及实例
2013/08/01 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
vuejs如何配置less
2017/04/25 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
js微信分享实现代码
2020/10/11 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
python获取本机外网ip的方法
2015/04/15 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
Python栈类实例分析
2015/06/15 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
python批量生成条形码的示例
2020/10/10 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
后备干部培训方案
2014/05/22 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
节约用水广告语60条
2019/11/14 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python