日常开发中总免不了时间的处理,上次提到一种非常普通的处理时间格式的思路及实现,这次的问题是如何取得每月最后一天。其中要考虑的情况包括大小月,二月份以及是否闰年等等,如果要写这么一个getLastDay()
的方法的话估计还是得要些代码量的,但之前看过一篇博客(忘了地址)却提出了另外一种简单的做法,实现如下
实现
实现的关键是使用new Date()
构造函数的特性,可以从MDN看到如下关键
如果把传入的天变成0,那么就会变成上个月的最后一天,而且不用担心闰年或这二月份的影响,通通适应。举个例子,当传入
1999/3/0
就会变成1999/2/28
,下面是一个封装起来的方法
//传入年和月,返回该月的最后一天
function getLastDay(year, month) {
var pMonth = parseInt(month + 1, 10);
var date = new Date(year, month, 0);
return date.getDate();
}
兼容性
经过测试(firefox和chrome),某个chrome版本会出现问题,但最新版的chrome不会