日期选择方法总结 原生js
程序员文章站
2022-03-25 11:35:54
日期选择方法总结做项目的时候,经常碰到需要根据不同时间段来查询结果的需求,总结了一下当前用到的各个时间段,起始时间和结束时间方法,话不多说,直接上代码:一.获取对应时区的时间getTimeZoneE8(i, timeInt) { if (typeof i !== 'number') return; let d = new Date(timeInt); let len = d.getTime(); let offset = d.getTimezoneOffset...
做项目的时候,经常碰到需要根据不同时间段来查询结果的需求,总结了一下当前用到的各个时间段,起始时间和结束时间方法,话不多说,直接上代码:
一.获取对应时区的时间
getTimeZoneE8(i, timeInt) {
if (typeof i !== 'number') return;
let d = new Date(timeInt);
let len = d.getTime();
let offset = d.getTimezoneOffset() * 60000;
let utcTime = len + offset;
return new Date(utcTime + 3600000 * i);
}
二.获取各个时间段的起始时间和结束时间
getTime(time,limitObj) {
let eTime = this.getTimeZoneE8(8, new Date()).format('yyyy-MM-dd 23:59:59.999')
let date = new Date(), nDate = 1
let weekDay = date.getDay();
switch (time) {
case 'today': //今日
nDate = 0;
break;
case 'yesterday': //昨日
nDate = 0
eTime = this.getTimeZoneE8(8, date.setDate(date.getDate() - 1)).format('yyyy-MM-dd 23:59:59.999')
break
case 'thisWeek': //本周
nDate = weekDay - 1
break
case 'lastWeek': //上周
date = date.setDate(date.getDate() - weekDay)
date = this.getTimeZoneE8(8, date)
eTime = this.getTimeZoneE8(8, date).format('yyyy-MM-dd 23:59:59.999')
nDate = 6
break
case 'limit': //已选择时间段
nDate = limitObj.start
eTime = limitObj.end
break
case 'thisMonth': //本月
nDate = date.getDate() - 1
break
case 'lastMonth': //上月
date = date.setDate(date.getDate() - date.getDate())
date = this.getTimeZoneE8(8, date)
nDate = date.getDate() - 1
eTime = this.getTimeZoneE8(8, date).format('yyyy-MM-dd 23:59:59.999')
break
default:
break;
}
date = date.setDate(date.getDate() - nDate)
let seTime = {
start: time === 'limit' ? nDate : this.getTimeZoneE8(8, date).format('yyyy-MM-dd'),
end: eTime
}
return seTime
}
本文地址:https://blog.csdn.net/qq_40595166/article/details/109236877