自定義時間類

js獲取時間
獲取年余境、月著淆、日馋艺、周
格式化日期
獲取日期范圍
獲取歷史前N天的時間
獲取未來N天的時間

/**
 * 自定義時間類
 */
class TimeClass {
    constructor(date) {
        if (!date || typeof (date) === "string") {
            date = new Date();
        }
        this.date = date;

        this.year = this.getCurrYear();
        this.month = this.getCurrMonth();
        this.day = this.getCurrDay();
        this.week = this.getCurrWeek();
        this.hours = this.getCurrHours();
        this.minutes = this.getCurrMinutes();
        this.seconds = this.getCurrSeconds();
    }

    /**
     * 格式化時間
     * @param date
     * @returns {string}
     */
    timeFormat(date) {
        if (date) {
            this.date = date;
        }
        return `${this.getCurrYear()}-${this.getCurrMonth()}-${this.getCurrDay()}`;
    }

    /**
     * 獲取年份
     * @returns {number}
     */
    getCurrYear() {
        return this.date.getFullYear();
    }

    /**
     * 獲取月份
     * @returns {*}
     */
    getCurrMonth() {
        let ominth = this.date.getMonth() + 1;
        return ominth > 9 ? ominth : '0' + ominth;
    }

    /**
     * 獲取本日
     * @returns {any}
     */
    getCurrDay() {
        let oDay = this.date.getDate();
        return oDay > 9 ? oDay : '0' + oDay;
    }

    /**
     * 獲取周幾
     * @returns {number}
     */
    getCurrWeek() {
        return this.date.getDay();
    }

    /**
     * 獲取時
     * @returns {number}
     */
    getCurrHours() {
        return this.date.getHours();
    }

    /**
     * 獲取分
     * @returns {number}
     */
    getCurrMinutes() {
        return this.date.getMinutes();
    }

    /**
     * 獲取秒
     * @returns {number}
     */
    getCurrSeconds() {
        return this.date.getSeconds();
    }

    /**
     * 獲取本周開始日期
     * @returns {string}
     */
    getCurrWeekStart() {
        var oWeek = this.getCurrWeek();
        oWeek = oWeek > 0 ? oWeek : 7;
        return this.computeTime(-oWeek + 1);
    }

    /**
     * 獲取本周結(jié)束日期
     * @returns {string}
     */
    getCurrWeekEnd() {
        var oWeek = this.getCurrWeek();
        oWeek = oWeek > 0 ? oWeek : 7;
        return this.computeTime(7 - oWeek);
    }

    /**
     * 獲取本周日期范圍
     * @returns {string[]}
     */
    getCurrWeekScope() {
        let startTime = this.getCurrWeekStart();
        let endTime = this.getCurrWeekEnd();
        return [startTime, endTime];
    }

    /**
     * 獲取本月開始時間
     * @returns {string}
     */
    getCurrMonthStart() {
        this.date.setDate(1);
        console.log(this.date);
        return this.timeFormat();
    }

    /**
     * 獲取本月結(jié)束日期
     * @returns {string}
     */
    getCurrMonthEnd() {
        var monthFirstDate = new Date(this.year, this.month, 1);
        var oneDay = 1000 * 60 * 60 * 24;
        this.date = new Date(monthFirstDate - oneDay);
        console.log(this.date);
        return this.timeFormat();
    }

    /**
     * 獲取本月日期范圍
     * @returns {string[]}
     */
    getCurrMonthScope() {
        let startTime = this.getCurrMonthStart();
        let endTime = this.getCurrMonthEnd();
        return [startTime, endTime];
    }

    /**
     * 自定義加減天數(shù)
     * @param num
     * @returns {string}
     */
    computeTime(num) {
        this.date.setDate(this.date.getDate() + num);
        return this.timeFormat();
    }


}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侧纯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子碍讨,更是在濱河造成了極大的恐慌治力,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勃黍,死亡現(xiàn)場離奇詭異宵统,居然都是意外死亡,警方通過查閱死者的電腦和手機覆获,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門马澈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锻梳,你說我怎么就攤上這事箭券【煌保” “怎么了疑枯?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛔六。 經(jīng)常有香客問我荆永,道長,這世上最難降的妖魔是什么国章? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任具钥,我火速辦了婚禮,結(jié)果婚禮上液兽,老公的妹妹穿的比我還像新娘骂删。我一直安慰自己,他們只是感情好四啰,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布宁玫。 她就那樣靜靜地躺著,像睡著了一般柑晒。 火紅的嫁衣襯著肌膚如雪欧瘪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天匙赞,我揣著相機與錄音佛掖,去河邊找鬼。 笑死涌庭,一個胖子當著我的面吹牛芥被,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坐榆,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼撕彤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起羹铅,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蚀狰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后职员,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體麻蹋,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年焊切,在試婚紗的時候發(fā)現(xiàn)自己被綠了扮授。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡专肪,死狀恐怖刹勃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嚎尤,我是刑警寧澤炎滞,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布扳埂,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逮栅。R本人自食惡果不足惜戚揭,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一扯饶、第九天 我趴在偏房一處隱蔽的房頂上張望悯姊。 院中可真熱鬧,春花似錦揖曾、人聲如沸落萎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽练链。三九已至,卻和暖如春念祭,著一層夾襖步出監(jiān)牢的瞬間兑宇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工粱坤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隶糕,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓站玄,卻偏偏與公主長得像枚驻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子株旷,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容