/**根据现有日期往前或者往后多少月,推算出日期 */
function defaulMonth(date, many,flag) {const thirtyDays = [4, 6, 9, 11] // 30天的月份const thirtyOneDays = [1, 3, 5, 7, 8, 10, 12] // 31天的月份const currDate = date ? new Date(date) :  new Date(); // 今天日期const year = currDate.getFullYear()let month = currDate.getMonth() + 1let targetDateMilli = 0let GMTDate = '' // 中国标准时间let targetYear = '' // 年let targetMonth = '' // 月let targetDate = '' // 日let dealTargetDays = '' // 目标日期const isLeapYear =!!((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) // 是否是闰年// console.log(isLeapYear, "isLeapYear");let countDays = 0 // 累计天数for (let i = 0; i < many; i++) {if (flag === 'before') {month = month - 1 <= 0 ? 12 : month - 1} else {month = month + 1 > 12 ? 1 : month + 1}thirtyDays.includes(month)? (countDays += 30): thirtyOneDays.includes(month)? (countDays += 31): isLeapYear? (countDays += 29): (countDays += 28)}targetDateMilli = currDate.setDate(currDate.getDate() - (flag === 'before' ? countDays : countDays * -1))GMTDate = new Date(targetDateMilli)targetYear = GMTDate.getFullYear()targetMonth = GMTDate.getMonth() + 1targetDate = GMTDate.getDate()targetMonth = targetMonth.toString().padStart(2, '0')targetDate = targetDate.toString().padStart(2, '0')dealTargetDays = `${targetYear}-${targetMonth}-${targetDate}`return dealTargetDays
} //  defaulMonth( '2021-12-12', 3,"before") //指定日期向前3个月//  defaulMonth( '2021-12-10',  2,"after")  //指定日期向后2个月//  defaulMonth( null, 2 ,"after")  //今天向后2个月

js根据日期往前或者往后多少月,推算出日期相关推荐

  1. 根据传入日期 往前或者往后 顺延月份

    自己mark一下 工作场景 echarts图表需要,根据传入的日期时间(easyui datebox取值出来是string类型格式为:"2018-06-30"),推算往前几个月或者 ...

  2. calendar前推n天_把日期往前或者往后推一天

    public class Test { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFo ...

  3. android日期函数前加0,Android手机开发:日期函数之判断某日期格式是否之前+计算某日期之前N天或之后N天的日期...

    1. 判断某日期格式是否正确 /** * 判断日期格式是否正确 */ public static boolean IsDateFormat(String dataStr) { boolean stat ...

  4. android点击弹出日期选择器,关于Android 点击按钮弹出日期选择器

    首先是 xml文件 xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width= ...

  5. JS获取当前前一个月的日期,前两个月的日期

    起因 今天收到需求要实现一个获取当前时间前一个月的日期,前两个月,前三个月,前一年,前两年日期时间的需求于是我就去网上找了个帖子,按照他给的方法小改一下,废话不多说直接上代码[注意目前不支持往后的时间 ...

  6. js获取7天前,n天前的日期,7天后,n天后的日期,获取当前日期是周几

    前言: 1. js获取7天前,n天前的日期,7天后,n天后的日期,      2.获取当前日期是周几 js方法: 1.获取指定日期,传参数进去,传的是正值,则是今天之后的日期.传的负值则是今天之前的日 ...

  7. 计算从某个日期开始往前或往后天数的日期

    基本需求:给出一个日期,可以是当天日期,计算往前N天或者往后N天的日期. 给出的算法基本思路: 1.设定一个基础日期,比如1901-1-1 2.先算出给定日期和基础日期之间的天数n 3.往前m天或往后 ...

  8. js使用在vue中Date来计算日期,当前日期前多少天的日期 两个日期相减或相加等

    首先要给Date内置函数添加一个方法用于格式化时间 // 扩展date的时间格式化 Date.prototype.Format = function (fmt) {var o = {"M+& ...

  9. JS 获取指定日期的前几天或者几天

    例如获取2021-06-21后1天日期 /*** JavaScript 获取指定日期的前几天或者后几天的日期* @param date {string} 日期 如:2021-06-21* @param ...

最新文章

  1. c语言未命名exe,用dev-c++编译出现问题,求大神解答啊
  2. C++ string(转)
  3. list vue 删除后页面渲染_浅谈Vue项目实战(页面渲染+事件绑定)
  4. JAVA使用正则表达式给字符串添加分隔符
  5. java bitset_Java BitSet clone()方法及示例
  6. 【java】多线程控制(一)---Semaphore、Exchanger、CyclicBarrier、CountDownLatch
  7. python连接mysql的操作
  8. python3源代码分析_分析一点python源代码
  9. python什么时候用进程什么时候用线程_[译] Python 的多线程与多进程
  10. 目标规划运筹学例题doc_第八章 运筹学 目标规划 案例.doc
  11. u检验和t检验区别与联系
  12. 29岁,从绝望崩溃到年入50万:这个技能,决定你5年后的人生!
  13. Vue3+TypeScript
  14. Android系统如何修改默认打开程序
  15. Mysql 中的 mvcc原理
  16. ubuntu安装pcl 教程
  17. 《Unity 3.x游戏开发实例》一第2章 让我们从天空开始
  18. 基于TM8211的DAC芯片的学习
  19. vs .sln与.suo文件
  20. Pandas实战中的进阶技巧(1)

热门文章

  1. 网络安全——应急响应之入侵排查
  2. 自动化测试框架: KIF和EarlGrey对比
  3. 信号与系统(Python) 学习笔记摘录 (2) 傅里叶 Fourier
  4. Flowable Unknown property used in expression: xxx
  5. 浅谈scanf和scanf_s的区别,以及应对VS返回值被忽略的报错问题。
  6. Easy UI 支持移动端例子
  7. 微信小程序——查看AppId和AppSecret
  8. CRM系统优化工作效率与质量
  9. 使用StrongSwan配置IPSec
  10. video-player [ 视频播放插件 ]