为了更好的讲这节的内容,提醒一个 *** 处置日期的小技巧,想获取上个月最后一天,只需要设置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())
运行效果:
免费微信监视微信聊天记录手机软件(微信聊天纪录获得手机软件),很多客户都想监视别人手机微信的东拉西扯记录,有没有设备保证呢?让我们亲身经历本文把它表明...
跟着糊口程度的不绝的进步不绝的成长,那么各行各业的成长都在飞速的成长着进步着,那么餐饮行业的成长形势长短常值得各人等候的。无论是公共消费者照旧公共加盟商对付美食产物的喜爱水平都是溢于言表的。并且公共消...
美赞臣安儿乐奶粉是美赞臣港版系列的奶粉,那么美赞臣安儿乐A+3段怎么样,美赞臣安儿乐奶粉口感宝宝喜欢吗,下面友谊长存的小编就带来:美赞臣安儿乐A+3段测评。 美赞臣安儿乐A+3段怎么样 收到美赞臣...
本文目录一览: 1、国内比较著名的黑客组织有哪些 2、中国有顶级黑客么? 3、现在中国最权威的黑客组织是什么? 4、中国有顶级黑客么??? 5、中国黑客组织有多少个?是哪些了?哪几个最...
手机已经成为人们日常生活的必需品,正常情况下手机的使用寿命最多三到五年,过度使用或者遇到意外的情况下使用寿命会缩短,毕竟手机再好也不能做到不怕摔的地步,而且电子产品更新换代的速度也越来越快。那么手机更...
当人生跨入新的人生阶段,作为夫妻来说,都是想要孕育一个属于自己的爱情结晶,新的生命在带给家庭幸福的同时,也给夫妻双方增加了联系的纽带,很多女性在选择备孕的时候除了会注意一些事项之外,也会选择让宝宝在运...