日期选择方法总结 原生js

2022-07-29,,,

做项目的时候,经常碰到需要根据不同时间段来查询结果的需求,总结了一下当前用到的各个时间段,起始时间和结束时间方法,话不多说,直接上代码:

一.获取对应时区的时间

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

《日期选择方法总结 原生js.doc》

下载本文的Word格式文档,以方便收藏与打印。