js获取上一个月份
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js获取上一个月份相关的知识,希望对你有一定的参考价值。
new Date(new Date().setMonth(new Date().getMonth() - 1)).format('yyyyMM')我是这么做的,可对于每周日来说显示的就是大上个月,求解
1、根据输入的日期,获取年,月,日信息。
2、根据月信息,减去一个月,就是上一个月。注意1月份是上一年的12月份。
3、然后再拼接成日期格式
根据上面步骤,可以写对应的功能函数
/*** 获取上一个月
*
* @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) //如果是1月份,则取上一年的12月份
year2 = parseInt(year2) - 1;
month2 = 12;
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) //如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
day2 = days2;
if (month2 < 10)
month2 = '0' + month2;//月份填补成2位。
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
调用
alert(getPreMonth("2014-01-25")); 参考技术A
1、新建一个html文档,并创建一个Date对象。
2、从对象中获取当前的年份。
3、从对象中获取当前的月份,获取的月份较特殊,返回值为(0-11),所以需要再月份上加1,才能匹配当前正常的月份。
4、从对象中获取当前日数。
5、在屏幕上打印当前日期。
6、保存以上内容,并在浏览器预览效果。
参考技术B 不需要这么麻烦吧?new Date().getMonth()获取的就是当前月,其值是0-11.所以用以下代码就可以获取上个月了。只需要判断当前月为1月的情况。
<script>
z=new Date().getMonth();
z=((z==0)?(12):(z));
alert(z);
</script>追问
我是做下拉列表框的 道理和你的一样 但是你在用这个月份构造日期就会有这样的现象
date.setDate(0);
var lastMonth = date.getMonth() + parseInt(1),
start = date.getFullYear() + '/' + lastMonth + '/' + 1,
end = date.getFullYear() + '/' + lastMonth + '/' + date.getDate();
//控制台结果类似于:2018/2/1一2018/2/28
console.log(start + '——' + end);
JS获取指定月份的天数两种实现方法
参考技术A 最近看到一个有意思的试题,正好在需求中也碰到类似的问题,即计算某个月的天数问题。碰到类似问题也许大部分会想是不是还要判断闰年、平年,如果这样想的话就复杂了,下面给出具体的计算方法。获取月份天数方法一:
//传入年份和月份
获取该年对应月份的天数
function
getMonthDays(year,month)
var
thisDate
=
new
Date(year,month,0);
//当天数为0
js自动处理为上一月的最后一天
return
thisDate.getDate();
上面应该时获取月份天数最简单的方法之一了,当Date中参数超出范围时js会自动处理,如果传值小于等于0,则日期将会向前推,否则日期将会向后推。下面时MDN原文,也提到了此现象:
Note:
当Date作为构造函数调用并传入多个参数时,如果数值大于合理范围时(如月份为13或者分钟数为70),相邻的数值会被调整。比如
new
Date(2013,
13,
1)等于new
Date(2014,
1,
1),它们都表示日期2014-02-01(注意月份是从0开始的)。其他数值也是类似,new
Date(2013,
2,
1,
0,
70)等于new
Date(2013,
2,
1,
1,
10),都表示时间2013-03-01T01:10:00。
下面给出几个例子供参考:
1.参数传入负数
2.传入大于规定范围的值
以上可看出,js本身对日期处理还是比较好的,同时开发人员也可以利用这一点获取想要的结果。
获取月份天数方法一:
下面就是比较正常的获取方式了,代码:
//根据两个月份同一天的差值获取,同样是传入需要获取的对应年份和月份
function
getMonthDays(year,month)
var
stratDate
=
new
Date(year,month-1,1),
endData
=
new
Date(year,month,1);
var
days
=
(endData
-stratDate)/(1000*60*60*24);
return
days;
第二种方式则是根据所求月份和下一个月份某一天的差值获取对应月份的天数。
总结
以上所述是小编给大家介绍的JS获取指定月份的天数两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:JS获取月份最后天数、最大天数与某日周数的方法JS获取月的最后一天与JS得到一个月份最大天数的实例代码
以上是关于js获取上一个月份的主要内容,如果未能解决你的问题,请参考以下文章
一JavaScript获取当前月份的前12个月,获取最近的12个月二js实现获取当前月份前的12个月份,格式化后放在一个数组里