JS 获取前一个月的日期
/*总结:获取前一个月的日期之所以不简单,就是因为每个月天数不固定造成的,
* 而这个方法把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 获取前一个月的日期相关推荐
- mysql获取前一个月的日期和前一年的日期
set @dt = now(); select extract(year_month from date_add(@dt, interval -1 month)); select extract(ye ...
- js localdate上一个月_moment.js格式化日期,获取前一个月的时间
下载moment.js 格式化当前日期: //显示结果为:"2017-09-20 15:35:52" moment(new Date()).format('YYYY-MM-DD H ...
- JS获取当前前一个月的日期,前两个月的日期
起因 今天收到需求要实现一个获取当前时间前一个月的日期,前两个月,前三个月,前一年,前两年日期时间的需求于是我就去网上找了个帖子,按照他给的方法小改一下,废话不多说直接上代码[注意目前不支持往后的时间 ...
- Oracle获取指定月最后一天日期(last_day函数)
获取指定月最后一天日期: select sysdate 当前日期,last_day(sysdate) 最后一天日期 from dual
- JAVA获取前一个月的第一天和最后一天
需求:需要实现获取前一个月的第一天和最后一天 实现如下: package com.date;import java.text.SimpleDateFormat; import java.util.Ca ...
- 根据当前时间 获取前一个月后一个月
根据当前时间 获取前一个月后一个月 const lastMonth = new Date();lastMonth.setMonth(new Date().getMonth() - 1)//格式话 使用 ...
- jquery获取前一个月日期
一) 重构Date对象: [javascript] view plaincopy // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒 ...
- 【JS】 # js获取当前日期,比较日期大小
通过 JS 在前台页面获取当前日期,比较时间的大小 // 获取当前时间,格式YYYY-MM-DD function getNowFormatDate() {var date = new Date(); ...
- js获取最近七天日期
没什么问题描述直接上代码吧 //返回最近七天的日期getday2() {let days = [];for(let i=0; i<=24*6;i+=24){ //今天加上前6天let dateI ...
最新文章
- mysql 5.6.15_mysql-5.6.15-win32.zip免安装配置
- Datawhale组队学习周报(第038周)
- 科普丨浅谈人工神经网络跌宕起伏七十年
- 动态添加的路由 直接访问_VUE 动态路由(二)
- J - 数据结构实验:哈希表
- Tensorflow学习-工具相关
- 转录组+微生物组联合解密困扰50年的丛枝菌根共生“自我调节”中枢分子网络机制...
- MySQL数据库的权限管理
- OpenCV多目标跟踪与视频分析
- 如何把电脑文件传到虚拟机
- 【并行计算-CUDA开发】 NVIDIA Jetson TX1
- Python3 | UserWarning: findfont: Font family [‘SimHei‘] not found. Falling back to DejaVu Sans.
- 微分方程数值解法(2)——椭圆型方程的有限差分法
- 计算机多用户如何共享软件,电脑同屏软件
- 纤亿通教你如何选择合适的 Cat6 网线
- 企业微信第三方服务商和钉钉ISV开发对比
- 配置一台新的kubuntu
- 解读制造业数字化转型的六大因素
- 三相异步电机基于模型的效率估计算法
- Ubuntu 18.04及几款应用的安装