一、判断日期是否属于本月
var isSameMonth = function(inDate) { // inDate 是一个date对象
var nowDate = new Date();
return ((nowDate.getFullYear() == inDate.getFullYear()) &&
(nowDate.getMonth() == inDate.getMonth()));
}
// 测试
isSameMonth(new Date('2024-02-28')) // true
通过比较参数日期的月份和年份是否与当前日期的月份和年份相同来确定日期是否属于本月。
二、判断日期是否属于本周
var isSameWeek = function(inDate) { // inDate 是一个date对象
let inDateStr = inDate.toLocaleDateString(); // 获取如YYYY/MM/DD的日期
let nowDate = new Date();
let nowTime = nowDate.getTime();
let nowDay = nowDate.getDay();
for(let i=0;i<7;i++) {
if(inDateStr == (new Date(nowTime + (i-nowDay)*24*3600*1000)).toLocaleDateString())
return true;
}
return false;
}
// 测试
isSameWeek(new Date('2024-02-28')) // true
isSameWeek(new Date('2024-03-01')) // true
isSameWeek(new Date('2024-03-03')) //false
逻辑是先计算出当前日期是当周的X(0<=X<=6)
日,则同周的日期范围是其 [0-X,6-X]
,这样以当前日期为基准,分别计算这个范围内的各个日期对应的toLocaleDateString()
,如果存在与inDate
对应的toLocaleDateString()
相等,则表明 inDate
和现在处于同一周