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 QueryString解析类代码
Jan 17 Javascript
利用了jquery的ajax实现二级联互动菜单
Dec 02 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
JS、jQuery中select的用法详解
Apr 21 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
Jun 25 Javascript
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
详解vue静态资源打包中的坑与解决方案
Feb 05 Javascript
JavaScript中click和onclick本质区别与用法分析
Jun 07 Javascript
微信小程序实现tab页面切换功能
Jul 13 Javascript
5分钟学会Vue动画效果(小结)
Jul 21 Javascript
小程序实现图片移动缩放效果
May 26 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简单读取xml文件的方法示例
2017/04/20 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
JavaScript的目的分析
2007/01/05 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
JS二维数组的定义说明
2014/03/03 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
python操作gmail实例
2015/01/14 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python set常用操作函数集锦
2017/11/15 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
Python requests上传文件实现步骤
2020/09/15 Python
python实现代码审查自动回复消息
2021/02/01 Python
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
路政管理专业推荐信
2013/11/11 职场文书
合同协议书格式
2014/04/18 职场文书
暑期学习心得体会
2014/09/02 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python