js获取上一个月份

newDate(newDate().setMonth(newDate().getMonth()-1)).format('yyyyMM')我是这么做的,可对于每周日来说显示... new Date(new Date().setMonth(new Date().getMonth() - 1)).format('yyyyMM')我是这么做的,可对于每周日来说显示的就是大上个月,求解 展开
 我来答
woshidaniel
推荐于2018-03-13 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:950万
展开全部

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"));
刺友互
高粉答主

2019-07-07 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:71万
展开全部

1、新建一个HTML文档,并创建一个Date对象。

2、从对象中获取当前的年份。

3、从对象中获取当前的月份,获取的月份较特殊,返回值为(0-11),所以需要再月份上加1,才能匹配当前正常的月份。

4、从对象中获取当前日数。

5、在屏幕上打印当前日期。

6、保存以上内容,并在浏览器预览效果。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宋异人
2012-10-28 · TA获得超过505个赞
知道小有建树答主
回答量:477
采纳率:100%
帮助的人:246万
展开全部
不需要这么麻烦吧?
new Date().getMonth()获取的就是当前月,其值是0-11.所以用以下代码就可以获取上个月了。只需要判断当前月为1月的情况。
<script>
z=new Date().getMonth();
z=((z==0)?(12):(z));
alert(z);
</script>
追问

我是做下拉列表框的     道理和你的一样   但是你在用这个月份构造日期就会有这样的现象

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友09a553a
2018-03-13 · TA获得超过184个赞
知道答主
回答量:45
采纳率:0%
帮助的人:8.3万
展开全部
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/28
console.log(start + '——' + end);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式