为了更好的讲这节的内容,提醒一个 *** 处置日期的小技巧,想获取上个月最后一天,只需要设置SetDate参数为0即可。
var endDate = new Date(); //上个月最后一天 endDate.setDate(0);
接着正文更先:
使用 *** 获取当前月的最后一天,咱们通常的思绪先获取下个月的之一天,然后在减去一天,就是当前月的最后一天,以是自然会用到下面的代码:
var date= new Date(); date.setMonth(date.getMonth() + 1); //日期设置为0号, 0示意1号的前一天 let lastDay = date.setDate(0); console.log('最后一天:' + new Date(lastDay).toLocaleString())
我写此文的日期是2019.08.21,以是打印效果如下:
最后一天:2019/8/31 下昼4:10:43
那这样的算法有没有bug,咱们并不确定,以是为了还原现场,现在咱们从2019.01.31一个一个来试试
var date= new Date(2019, 0, 31); //0 示意1月 date.setMonth(date.getMonth() + 1); // 日期设置为0号, 0示意1号的前一天 let lastDay = date.setDate(0); console.log('最后一天:' + new Date(lastDay).toLocaleString())
打印:
最后一天:2019/2/28 上午12:00:00
咱们可以看到,我们把 1月31号往后拨一个月在往前减一天,理应获得的是 1月31号,现实获得的是 2月28号,以是咱们写的代码是有bug的。
这又是怎么肥事?
咱们可以列出月份:
1月 1 ....... 28 29 30 31 2月 1 ....... 28 3月 1 ....... 28 29 30 31
咱们通过 month + 1,在 *** 中会明白成:
当前日期 + 当月的天数
以是上例中的 date.setMonth(date.getMonth() + 1) 等价于 1月31号 + 31天 ,凭据上面的列表,就可以看到效果是3月3号
以是不要以为 month + 1 就是月份加 1,它的意思是当前日期加上当月天数 。
那要怎么保证多了不会多跳一个月呢?
只要保证 month + 1 之前不会跨越28号就行啦,那要怎么做到呢?
推算:
以是窍门在把31号回拨到28号就行啦,以是多加以下这句话就行了:
date.setDate(28)
完整代码:
var date= new Date(2019, 0, 31); //0 示意1月 date.setDate(28) date.setMonth(date.getMonth() + 1); // 日期设置为0号, 0示意1号的前一天 let lastDay = date.setDate(0); console.log('最后一天:' + new Date(lastDay).toLocaleString())
运行效果:
“上海模特预约平台 真实会员和经纪人亲测五大平台【中再市】”,身高165cm,体重52kg,学历为高中,是一位清纯美女,健康匀称的90后女生,她从事的其她职业包括:教育/培训,愿意与适合的游伴结伴旅游...
有的人手是断掌,有的人川字掌,不过这些在中都是有一些含义的,那要说双手断掌的男人,他的命运是怎么样的,有很多人不知道答案了。那么,双手断掌纹的男人命运是怎么样的呢?是好还是坏?来看看。 双断掌男人命运...
移动互联网勒索主要是通过一下几个方面来实现: 通过购买大量的被黑客泄露的用户各种账号信息,然后使用“撞库”的方法筛选有效的账户信息,最后修改用户账户密码的信息来锁定用户设备(只要是针对苹果用户...
北京西站(Beijingxi Railway Station),又称北京西客站,位于中国北京市丰台区,是中国铁路北京局集团有限公司管辖的特等站,是北京铁路枢纽的重要组成部分。 涿州东站(Zhu...
问下诸位掘友,有木有这类数据可视化页面车轮子,能够手动式加上部件,拖拽加上等,最终形成a?...
本文导读目录: 1、基努里维斯是谁? 2、爱情保卫战火爆女友你真臭毛病是一期 3、女主是黑客小说? 4、求推荐关于女主是电脑高手,黑客的言情小说,女主是一名大学生计算机系 5、现代重生...