项目中常用到对于日期的处理事件
1. 时间戳转换成日期
1 | let Timer = (_chuo, has_time, has_second) => {// 时间戳转换 |
2. 两个日期相差天数
1 | // 初始化日期 |
3. 获取几天后的日期
1 | Date.prototype.offDays = function(days){ |
4. 当天是本月第几周
在网上找的两种方法,但是都会有点误差,相对来说用第一种
action 1:1
2
3
4
5
6
7
8
9
10
11
12
13
14let getMonthWeek = (str) => {
/*
y = s = 当前日期
m = 6 - w = 当前周的还有几天过完(不算今天)
y + m 的和在除以7 就是当天是当前月份的第几周
*/
let arr = str.split("-");
let [y, m, d] = arr;// 分别对应年,月,日
let _date = new Date(y, parseInt(m) - 1, d),
w = _date.getDay(),
s = _date.getDate();
return Math.ceil((s + 6 - w) / 7)
};
getMonthWeek("2019-06-18")
action 2:1
2
3
4
5
6
7
8
9
10
11let getMonthWeek = (str) => {
let week = Math.ceil(str.getDate()/7),
month = str.getMonth() + 1;// 该日期为第几周
// 判断这个月前7天是周几,如果不是周一,则计入上个月
if(str.getDate() < 7){
if(str.getDay() !== 1){
week = 5;
}
}
return week;
}
5. 所在月的最后一天
有个瑕疵,如果当前是1月份末尾几天,对应的下个月就会跳到3月份,所以获取到的日期是2月份的最后一天1
2
3
4
5
6let getMonthLast = (str) => {
let _end = new Date(str);
_end.setMonth(_end.getMonth + 1);// 设置成下一个月的同一天
_end.setDate(0);// 设0 =》 起始天 =》 上个月最后一天
return _end;
}
6. 两个日期相隔月份
1 | function getMonthInterval(_date){ |
扫描二维码,分享此文章