首页 > 其他分享 >JS计算指定日期添加指定月份后的日期

JS计算指定日期添加指定月份后的日期

时间:2023-09-27 12:11:08浏览次数:32  
标签:Jyear 指定 JS var 日期 num date day Jmonth

/**
 * 计算给定日期 n个月后的日期
 * @param dateStr
 * @param num
 * @returns {string}
 */
function addMonth(dateStr, num) {
  var monthNum = 0;
  if (typeof num == "string") {
    monthNum = parseInt(num);
  } else {
    monthNum = num;
  }
  var date = new Date(dateStr);
  //获取原日
  var day = date.getDate();
  //获取原月份
  var month = date.getMonth();
  //设置增加月份
  date.setMonth(date.getMonth() + monthNum * 1, 1);
  //获取增加的后的月份
  var Jmonth = date.getMonth() + 1;
  //获取增加的后的年份
  var Jyear = date.getFullYear();
  if (Jmonth == 4 || Jmonth == 6 || Jmonth == 9 || Jmonth == 11) {
    //小月
    if (day > 30) {
      day = 30;
    }
  } else if (Jmonth == 2) {
    //2月判断是否闰年
    if ((Jyear % 4 == 0 && Jyear % 100 != 0) || Jyear % 400 == 0) {
      if (day > 29) {
        day = 29;
      }
    }
    if (day > 28) {
      day = 28;
    }
  } else {
    //大月
    if (day > 31) {
      day = 31;
    }
  }
  Jmonth = Jmonth < 10 ? "0" + Jmonth : Jmonth;
  day = day < 10 ? "0" + day : day;
  return Jyear + "-" + Jmonth + "-" + day;

}

标签:Jyear,指定,JS,var,日期,num,date,day,Jmonth
From: https://www.cnblogs.com/Tom2-xiao-ye/p/17732397.html

相关文章

  • mysql 获取当前日期周几
    --方法一:使用WEEKDAY函数SELECTWEEKDAY(CURDATE());--返回0到6,分别代表星期日到星期六--方法二:使用DAYOFWEEK函数SELECTDAYOFWEEK(CURDATE());--返回1到7,分别代表星期日到星期六--方法三:使用DATE_FORMAT函数SELECTDATE_FORMAT(CURDATE(),'%w');......
  • OpenHarmony装饰指定自定义组件:@BuilderParam装饰器
     当开发者创建了自定义组件,并想对该组件添加特定功能时,例如在自定义组件中添加一个点击跳转操作。若直接在组件内嵌入事件方法,将会导致所有引入该自定义组件的地方均增加了该功能。为解决此问题,ArkUI引入了@BuilderParam装饰器,@BuilderParam用来装饰指向@Builder方法的变量,开......
  • Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?
    前言:SpringBoot在Java生态中备受欢迎,它是一款基于Java构建的轻量级服务端框架,主要用于Web服务。SpringBoot的应用使得创建各类基于Spring的企业级应用变得异常简单。Node.js作为一种基于ChromeV8引擎的JavaScript运行时环境,在服务端上运行JavaScript代码。它以其独......
  • Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?
    前言:SpringBoot在Java生态中备受欢迎,它是一款基于Java构建的轻量级服务端框架,主要用于Web服务。SpringBoot的应用使得创建各类基于Spring的企业级应用变得异常简单。Node.js作为一种基于ChromeV8引擎的JavaScript运行时环境,在服务端上运行JavaScript代码。它以其独特......
  • jsp 之反射型 xss 示例
    jsp代码如下:<%@pagecontentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><body><formaction=""method="get">姓名:<inputname="name"type......
  • VUE 3.0使用Tinymce编辑器JS报错解决
    接上篇文章写到的Tinymce编辑器,突然发现了,多点击几次编辑弹框内容就会变空白,而且JS报错了。如下图: 点开这个js就能发现错误的地方了改这两个文件就可以了,代码如下:if(typeofe.content!=='string'){e.content=e.content.innerHTML;}    这样......
  • 使用Word和PPT编写的公式无法在指定字符处对齐
    一、前言从Office2016起,Word和PowerPoint开始支持使用公式编辑器插入公式。它支持LaTex和UnicodeMath的线性格式公式,方便使用者快速上手。使用软回车可以使一个公式分开为多行表示,常见于需要逐步计算的连等式,或者冗长的多项式。同时为了美观,可以在每一行选取一个字符(运算符,......
  • CommonJS简介
    CommonJS简介Tags:JavaScript,Node.js,commonjsPublished:2023/09/26什么是commonjscommonjs是module的一种类型(规范)使用场景CommonJSismainlyusedinserver-sideJSappswithNode,asbrowsersdon'tsupporttheuseofCommonJS.CommonJS主要用于带有Node......
  • vscode 運行node.js的命令會瀏覽其他程序打開
      终端输入命令get-commandnpm后   至C:\Windows\System32刪除npm ......
  • vite_vite.config.js配置代理与websocket代理
    exportdefaultdefineConfig({server:{proxy:{"/proxy":{target:"http://121.10.140.87",//线上服务器IP地址changeOrigin:true,ws:true,rewrite:(p......