*** 获取当前月的最后一天

访客55年前关于黑客接单1106

为了更好的讲这节的内容,提醒一个 *** 处置日期的小技巧,想获取上个月最后一天,只需要设置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号 + 31 会超
  • 30号 + 31 会超
  • 29号 + 31 会超
  • 28号 + 31 照样 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())    

运行效果:

相关文章

男人脖子后面有痣代表什么(胸前有痣代表什么)

痣很普遍,大家都是有。不一样的是,每一个人的痣会生长发育在不一样的地区,意味着不一样的含意。脖子上有痣代表着哪些? 脖子上的痣代表什么意思 颈部前边有一颗痣 颈部前有小痣的人招坏蛋,这样的人非常...

高档北京市空中小姐会馆联系电话详细地址-【王霭】

“高档模特北京市空中小姐会馆联系电话详细地址-【王霭】” 南京市空中小姐伴游预定价格一线城市:成都市、杭州市、重庆市、武汉市、苏州市、西安市、天津市、南京市、郑州市、长沙市、沈阳市、青岛市、宁波市、东...

keep什么意思(核心词汇Keep用法小结)

keep什么意思(核心词汇Keep用法小结) 1.keep及物动词,keep +n.。 例:keep a seat 意思是:留个座位。 再比如,可以说keep the money,意思是存...

模拟黑客帝国动画片(黑客帝国模仿哪个动漫)

模拟黑客帝国动画片(黑客帝国模仿哪个动漫)

本文导读目录: 1、求 黑客帝国动画版 百度网盘免费资源链接,谢谢 2、黑客帝国动画版和电影版的区别 3、一个《黑客帝国》的动画片。那里有下载? 4、黑客帝国动画版据说有9部,求完整下载地...

黑客攻防观战系统(黑客攻防实战入门)

黑客攻防观战系统(黑客攻防实战入门)

本文导读目录: 1、黑客如何DDOS攻击Windows系统 2、所谓的黑客攻防是通过什么实现的呢? 3、网络安全和黑客攻防有什么区别? 4、如何构建无法被攻破黑客防御系统 5、关于黑客...

本票和汇票的主要区别(本票和汇票的区别 通俗)

  本票是强调票人到到期还款日没有理由向收款方付款一定额度的单据。一般来说,本票能够分成无记名本票和不无记名本票二种。但还可以分成按时本票和掉期本票二种。   一定要注意,必须考虑下列标准才可以起效...