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 相关文章推荐
javascript parseInt 函数分析(转)
Mar 21 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
Dec 02 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
Javascript动态引用CSS文件的2种方法介绍
Jun 06 Javascript
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
javascript中call,apply,bind的用法对比分析
Feb 12 Javascript
node.js回调函数之阻塞调用与非阻塞调用
Nov 13 Javascript
vuejs指令详解
Feb 07 Javascript
Vue实现微信支付功能遇到的坑
Jun 05 Javascript
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
Ant Design moment对象和字符串之间的相互转化教程
Oct 27 Javascript
使用js原生实现年份轮播选择效果实例
Jan 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 禁止页面缓存输出
2009/01/07 PHP
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
基于simple_html_dom的使用小结
2013/07/01 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python循环语句中else的用法总结
2016/09/11 Python
int在python中的含义以及用法
2019/06/27 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
毕业生优秀推荐信
2013/11/26 职场文书
客户经理岗位职责
2013/12/08 职场文书
先进个人获奖感言
2014/01/24 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
村官个人总结范文
2015/03/03 职场文书
中学图书馆工作总结
2015/08/11 职场文书
2019财务转正述职报告
2019/06/27 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
nginx优化的六点方法
2021/03/31 Servers
Golang二维数组的使用方式
2021/05/28 Golang
Go语言基础函数基本用法及示例详解
2021/11/17 Golang