一/ 获取的是 ***date格式***的当月第一天,最后一天,当天
var now = new Date() // 当前日期
var nowYear = now.getFullYear() //当前年
var nowMonth = now.getMonth() //当前月 (值为0~11)
var d = now.getDate() //当天
var firstDay = new Date(nowYear,nowMonth,1) // 本月开始时间
var LastDay = new Date(nowYear, nowMonth+1,0); // 本月结束时间
var toDay = new Date(nowYear,nowMonth,d) // 本月今天
//如果想获取本月第一天00:00和最后一天23:59
//var firstDay = new Date(nowYear,nowMonth,1,00,00)
//var LastDay = new Date(nowYear, nowMonth+1,0, 23,59);
//var toDay = new Date(nowYear, nowMonth, d, 23,59,59); // 获取今天23时:59分:59秒
注意:
- 第三个参数 0和1的区别:
1)0会转换为:第二个参数的最后一天;
如new Date(2020,8,0) => 2020年8月31号
2)1会转换为:第二个参数+1的第一天;
如new Date(2020,8,1) => 2020年9月1号
2.这里输入单双皆可,但是在代码里strict模式输入00会报错,所以如果是单数输入0即可,不用00的形式。
二 / 获取的是 ***字符串格式***的当月第一天,最后一天,当天
/**
* 获取当前月份的第一天、当天和最后一天
**/
function getFirstNowLastDay() {
var now = new Date();
var strLink = "-";
var year = now.getFullYear();
var month = now.getMonth() + 1;
var day = now.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (day >= 1 && day <= 9) {
day = "0" + day;
}
var firstDate = year + strLink + month + strLink + '01';
var sysDate = year + strLink + month + strLink + day;
var lastDay = this.getLastDay(year, month);
var lastDate = year + strLink + month + strLink + lastDay;
var returnArr = [firstDate, sysDate, lastDate];//以数组形式返回
return returnArr;
}
/**
* 获取当月的最后一天
* @param year 年份
* @param month 月份
**/
function getLastDay(year,month){
var new_year = year;
var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)
if(month>12){//如果当前大于12月,则年份转到下一年
new_month -=12;//月份减
new_year++;//年份增
}
// 取当年当月对应的下个月的前一天,即当前月的最后一天
var last_date = new Date(new_year,new_month,0).getDate();
return last_date;
}