js获取上一个月份 admin 2023-05-23 15:48:01 篇首语:本文由小编为大家整理,主要介绍了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月的情况。追问我是做下拉列表框的 道理和你的一样 但是你在用这个月份构造日期就会有这样的现象 参考技术C var date = new Date();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/28console.log(start + "——" + end); JS获取指定月份的天数两种实现方法 参考技术A 最近看到一个有意思的试题,正好在需求中也碰到类似的问题,即计算某个月的天数问题。碰到类似问题也许大部分会想是不是还要判断闰年、平年,如果这样想的话就复杂了,下面给出具体的计算方法。获取月份天数方法一://传入年份和月份获取该年对应月份的天数functiongetMonthDays(year,month)varthisDate=newDate(year,month,0);//当天数为0js自动处理为上一月的最后一天returnthisDate.getDate();上面应该时获取月份天数最简单的方法之一了,当Date中参数超出范围时js会自动处理,如果传值小于等于0,则日期将会向前推,否则日期将会向后推。下面时MDN原文,也提到了此现象:Note:当Date作为构造函数调用并传入多个参数时,如果数值大于合理范围时(如月份为13或者分钟数为70),相邻的数值会被调整。比如newDate(2013,13,1)等于newDate(2014,1,1),它们都表示日期2014-02-01(注意月份是从0开始的)。其他数值也是类似,newDate(2013,2,1,0,70)等于newDate(2013,2,1,1,10),都表示时间2013-03-01T01:10:00。下面给出几个例子供参考:1.参数传入负数2.传入大于规定范围的值以上可看出,js本身对日期处理还是比较好的,同时开发人员也可以利用这一点获取想要的结果。获取月份天数方法一:下面就是比较正常的获取方式了,代码://根据两个月份同一天的差值获取,同样是传入需要获取的对应年份和月份functiongetMonthDays(year,month)varstratDate=newDate(year,month-1,1),endData=newDate(year,month,1);vardays=(endData-stratDate)/(1000*60*60*24);returndays;第二种方式则是根据所求月份和下一个月份某一天的差值获取对应月份的天数。总结以上所述是小编给大家介绍的JS获取指定月份的天数两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!您可能感兴趣的文章:JS获取月份最后天数、最大天数与某日周数的方法JS获取月的最后一天与JS得到一个月份最大天数的实例代码 以上是关于js获取上一个月份的主要内容,如果未能解决你的问题,请参考以下文章 阿里云动态域名解析 windows上如何卸载C语言编译器MinGW? 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号