为了更好的讲这节的内容,提醒一个 *** 处置日期的小技巧,想获取上个月最后一天,只需要设置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())
运行效果:
本文导读目录: 1、如何让一个人的微信封掉 2、有没有微信快速永久封号的方法,急求 3、有人可以封微信嘛?我被骗钱了 花钱无所谓 能把他微信封了就行 4、微信被封了手机号也被改了怎么办...
教你查开宾馆记录怎么查,快速查询一个人宾馆酒店入住记录! 入住宾馆需要哪些手续 去宾馆酒店睡觉,忘了带身份证,可以入住吗 没有身份证,不可以登记入住 除非是你已经登记了, 或者...
羽毛球是大众喜爱的一项运动。运动是健身的一个良好方式,而羽毛球运动更是只要有一副羽毛球拍便能轻易的展开运动,那羽毛球拍什么牌子好?羽毛球拍有什么牌子?羽毛球拍怎样保养?新手怎样选择羽毛球拍?下面小编为...
克日,广东梅州,阿福的机动车驾驶考试限期将至,而他仍未能通过科目二考试。情急之下,竟让自己的双胞胎哥哥阿旺取代自己考试,不意被车载人脸识别系统识破。 以上就是相关内容,更多资讯请关注。...
微信中收藏被删除后可以通过微信设置中的异常恢复来进行恢复,具体操作方法如下:1、首先,在手机桌面找到并打开【微。 微信聊天记录删除了怎么恢复?随着微信的普及,方便了我们跟远在家乡的亲人朋友进行感情沟通...
共享自行车的个人信用难题一直全是大难点,使用保证金的方法来让一些沒有个人信用的人付出应有的代价,可是现如今的ofo小黄车提前准备撤消保证金的方法,只是发布一种自身自主创新的个人信用方式。 今...