/*总结:获取前一个月的日期之所以不简单,就是因为每个月天数不固定造成的,
            * 而这个方法把12个月的天数都列在一个数组里面,使之变的具体而不再抽象,
            * 用到某个月天数时候,只需要和数组对应位置的元素值比较即可
            * */

第一种:传入日期

// 获取上一个月时间,返回yyyy-MM-dd字符串
function getLastMonthTime(date){//  1    2    3    4    5    6    7    8    9   10    11   12月var daysInMonth = [0,31,28,31,30,31,30,31,31,30,31,30,31];var strYear = date.getFullYear();var strDay = date.getDate();var strMonth = date.getMonth()+1;//一、解决闰年平年的二月份天数   //平年28天、闰年29天//能被4整除且不能被100整除的为闰年,或能被100整除且能被400整除if (((strYear % 4) === 0) && ((strYear % 100)!==0) || ((strYear % 400)===0)){daysInMonth[2] = 29;}if(strMonth - 1 === 0) //二、解决跨年问题{strYear -= 1;strMonth = 12;}else{strMonth -= 1;}
//  strDay = daysInMonth[strMonth] >= strDay ? strDay : daysInMonth[strMonth];strDay = Math.min(strDay,daysInMonth[strMonth]);//三、前一个月日期不一定和今天同一号,例如3.31的前一个月日期是2.28;9.30前一个月日期是8.30if(strMonth<10)//给个位数的月、日补零{strMonth="0"+strMonth;}if(strDay<10){strDay="0"+strDay;}var datastr = strYear+"-"+strMonth+"-"+strDay;return datastr;
}

第二种:传入字符

  * 获取上一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */  function getPreMonth(date) {  var arr = date.split('-');  var year = arr[0]; //获取当前日期的年份  var month = arr[1]; //获取当前日期的月份  var day = arr[2]; //获取当前日期的日  var days = new Date(year, month, 0);  days = days.getDate(); //获取当前日期中月的天数  var year2 = year;  var month2 = parseInt(month) - 1;  if (month2 == 0) {  year2 = parseInt(year2) - 1;  month2 = 12;  }  var day2 = day;  var days2 = new Date(year2, month2, 0);  days2 = days2.getDate();  if (day2 > days2) {  day2 = days2;  }  if (month2 < 10) {  month2 = '0' + month2;  }  var t2 = year2 + '-' + month2 + '-' + day2;  return t2;  }  /** * 获取下一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */          function getNextMonth(date) {  var arr = date.split('-');  var year = arr[0]; //获取当前日期的年份  var month = arr[1]; //获取当前日期的月份  var day = arr[2]; //获取当前日期的日  var days = new Date(year, month, 0);  days = days.getDate(); //获取当前日期中的月的天数  var year2 = year;  var month2 = parseInt(month) + 1;  if (month2 == 13) {  year2 = parseInt(year2) + 1;  month2 = 1;  }  var day2 = day;  var days2 = new Date(year2, month2, 0);  days2 = days2.getDate();  if (day2 > days2) {  day2 = days2;  }  if (month2 < 10) {  month2 = '0' + month2;  }  var t2 = year2 + '-' + month2 + '-' + day2;  return t2;  }  //测试          //alert(getPreMonth("2014-01-25"));  //alert(getNextMonth("2014-12-25"));  

JS 获取前一个月的日期相关推荐

  1. mysql获取前一个月的日期和前一年的日期

    set @dt = now(); select extract(year_month from date_add(@dt, interval -1 month)); select extract(ye ...

  2. js localdate上一个月_moment.js格式化日期,获取前一个月的时间

    下载moment.js 格式化当前日期: //显示结果为:"2017-09-20 15:35:52" moment(new Date()).format('YYYY-MM-DD H ...

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

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

  4. Oracle获取指定月最后一天日期(last_day函数)

    获取指定月最后一天日期: select sysdate 当前日期,last_day(sysdate) 最后一天日期 from dual

  5. JAVA获取前一个月的第一天和最后一天

    需求:需要实现获取前一个月的第一天和最后一天 实现如下: package com.date;import java.text.SimpleDateFormat; import java.util.Ca ...

  6. 根据当前时间 获取前一个月后一个月

    根据当前时间 获取前一个月后一个月 const lastMonth = new Date();lastMonth.setMonth(new Date().getMonth() - 1)//格式话 使用 ...

  7. jquery获取前一个月日期

    一) 重构Date对象: [javascript] view plaincopy // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒 ...

  8. 【JS】 # js获取当前日期,比较日期大小

    通过 JS 在前台页面获取当前日期,比较时间的大小 // 获取当前时间,格式YYYY-MM-DD function getNowFormatDate() {var date = new Date(); ...

  9. js获取最近七天日期

    没什么问题描述直接上代码吧 //返回最近七天的日期getday2() {let days = [];for(let i=0; i<=24*6;i+=24){ //今天加上前6天let dateI ...

最新文章

  1. mysql 5.6.15_mysql-5.6.15-win32.zip免安装配置
  2. Datawhale组队学习周报(第038周)
  3. 科普丨浅谈人工神经网络跌宕起伏七十年
  4. 动态添加的路由 直接访问_VUE 动态路由(二)
  5. J - 数据结构实验:哈希表
  6. Tensorflow学习-工具相关
  7. 转录组+微生物组联合解密困扰50年的丛枝菌根共生“自我调节”中枢分子网络机制...
  8. MySQL数据库的权限管理
  9. OpenCV多目标跟踪与视频分析
  10. 如何把电脑文件传到虚拟机
  11. 【并行计算-CUDA开发】 NVIDIA Jetson TX1
  12. Python3 | UserWarning: findfont: Font family [‘SimHei‘] not found. Falling back to DejaVu Sans.
  13. 微分方程数值解法(2)——椭圆型方程的有限差分法
  14. 计算机多用户如何共享软件,电脑同屏软件
  15. 纤亿通教你如何选择合适的 Cat6 网线
  16. 企业微信第三方服务商和钉钉ISV开发对比
  17. 配置一台新的kubuntu
  18. 解读制造业数字化转型的六大因素
  19. 三相异步电机基于模型的效率估计算法
  20. Ubuntu 18.04及几款应用的安装

热门文章

  1. 服务器风扇转速不稳定,解决超微主板风扇转速不稳定的问题
  2. 谈谈百度搜索为什么那么快?
  3. pixhawk飞控小车倒车_Pixhawk 系列
  4. GNN是什么?GNN怎么学?GNN何用?
  5. 港大全面封杀ChatGPT!AI肆虐高校,作弊丑闻震惊全世界
  6. FIL近期热点资讯盘点
  7. 蓝桥 核桃 JAVA
  8. 欧姆龙cp1h-xa40dt-d与台达变频器modbus rtu通讯程序
  9. 分布式服务框架——Dubbo
  10. 学习型通用红外遥控设备(二)