欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

moment.js 計(jì)算當(dāng)前一周、一月對應(yīng)日期的實(shí)例

 更新時(shí)間:2022年12月08日 14:07:06   作者:halo1416  
這篇文章主要介紹了moment.js 計(jì)算當(dāng)前一周、一月對應(yīng)日期的實(shí)例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

moment.js 計(jì)算當(dāng)前一周、一月對應(yīng)日期

計(jì)算當(dāng)前一周對應(yīng)日期

/**
? ?* 根據(jù)一個(gè)日期計(jì)算出其所在的一周,反正對應(yīng)一周的相應(yīng)日期
? ?* basisDate: 依據(jù)日期, 默認(rèn)是當(dāng)天
? ?*/
? calcWeekDate(basisDate = moment().format('YYYY-MM-DD')) {
? ? let weekDate = [];
? ? let howWeek = moment(basisDate).day(); ? // 獲取到依據(jù)日期為星期幾;0為星期日、6為星期6
? ? // 如果今天是周日,則單獨(dú)處理,往前計(jì)算6天
? ? if (howWeek === 0) {
? ? ? let mixins = 0;
? ? ? while (mixins <= 6) {
? ? ? // 一次減1;即一次減6天,5天... => 獲取到了這周的周一、周二、到今天
? ? ? ? weekDate.unshift(moment(basisDate).subtract(mixins, 'days').format('YYYY-MM-DD'));
? ? ? ? mixins++;
? ? ? }
? ? ? return weekDate;
? ? }

? ? let minusNum = 1, addNum = 1;
? ? // 用今天的日期對應(yīng)的星期數(shù)去往前遍歷
? ? while (minusNum <= howWeek) {
? ? ? // 一次減1;即一次減6天,5天... => 獲取到了這周的周一、周二、到今天
? ? ? weekDate.push(moment(basisDate).subtract(howWeek - minusNum, 'days').format('YYYY-MM-DD'));
? ? ? minusNum++;
? ? }

? ? // 7 - howWeek 即今天后面要加的天數(shù)(一周是7天)
? ? while(addNum <= (7 - howWeek)) {
? ? ? weekDate.push(moment(basisDate).add(addNum, 'days').format('YYYY-MM-DD'));
? ? ? addNum++;
? ? }
? ? return weekDate;
? }

計(jì)算當(dāng)前一月對應(yīng)日期

/**
? ?* 根據(jù)一個(gè)日期計(jì)算出其所在的一月,反正對應(yīng)一月的相應(yīng)日期
? ?* basisDate: 依據(jù)日期, 默認(rèn)是當(dāng)天
? ?* replenishWeek: 是否需要將該月第一天和最后一天所在的周補(bǔ)全(通日歷類似),默認(rèn)需要
? ?*/
? calcMonthDate(basisDate = moment().format('YYYY-MM-DD'), replenishWeek = true) {
? ? let monthDate = [];
? ? const monthStart = moment(basisDate).startOf('month').format("YYYY-MM-DD"); ? ? ?// 該月第一天
? ? const monthEnd = moment(basisDate).endOf('month').format("YYYY-MM-DD"); ? ? ? ? ?// 該月最后一天

? ? monthDate.push(monthStart); ? // 先將當(dāng)月第一天放到數(shù)組中
? ? let addNum = 1;
? ? while (monthDate[monthDate.length - 1] < monthEnd) {
? ? ? // 依次用當(dāng)月第一天加,直到該月的最后一天
? ? ? monthDate.push(moment(monthStart).add(addNum, 'days').format('YYYY-MM-DD'));
? ? ? addNum++;
? ? }

? ? if (replenishWeek) { ? ?// 根據(jù)參數(shù),補(bǔ)全該月第一天和最后一天所在的周
? ? ? // 調(diào)用方法,得出該月第一天和最后一天分別是周幾 => 星期日為 0、星期六為 6?
? ? ? const monthStartWeek = moment(monthDate[0]).day();
? ? ? const monthEndWeek = moment(monthDate[monthDate.length - 1]).day();
? ? ? let addEmpty = 1, minusNum = 1;

? ? ? /** 注意:我們默認(rèn)的日歷顯示是 周一 => 周日 */

? ? ? let unshiftEnd = monthStartWeek; ?// 默認(rèn),當(dāng)月第一天是周幾,就往前加n-1天(如周五:往前加5-1天; 周日:往前加7-1天)
? ? ? if (monthStartWeek === 0) {
? ? ? ? unshiftEnd = 7
? ? ? }

? ? ? while (minusNum < unshiftEnd) { // 如果是周一,則一天也不會(huì)加
? ? ? ? // 一次減1;即分別在第一天的基礎(chǔ)上減一天、兩天、三天....;然后放到數(shù)組的前面
? ? ? ? monthDate.unshift(moment(monthStart).subtract(minusNum, 'days').format('YYYY-MM-DD'));
? ? ? ? minusNum++;
? ? ? }
? ? ??
? ? ? if (monthEndWeek !== 0) { ? // 如果最后一天是周日,則不補(bǔ)齊剩余日期
? ? ? ? // 7 - monthEndWeek 即這個(gè)月最后一天后面要加的天數(shù)(一周是7天) =>> 往后把一周補(bǔ)全(最后以周六結(jié)束,周日在最前面)
? ? ? ? // while(addEmpty < (7 - monthEndWeek + 1)) { ? // 7 - monthEndWeek + 1 : 周天在最后;7 - monthEndWeek:周天在最前
? ? ? ? while(addEmpty <= 7 - monthEndWeek) { ? //<= : 周天在最后;<:周天在最前
? ? ? ? ? monthDate.push(moment(monthEnd).add(addEmpty, 'days').format('YYYY-MM-DD'));
? ? ? ? ? addEmpty++;
? ? ? ? }
? ? ? }
? ? }
? ? return monthDate;
? }
}

用moment.js來解決時(shí)間問題

場景

今天用js獲取昨天日期和今天的日期遇到一個(gè)問題,如圖

我把當(dāng)前日期減-1想要獲取昨天的日期就出現(xiàn)了202-07-0這個(gè)笑話

解決辦法

直接使用JavaScript 日期處理類庫----moment.js

使用步驟

安裝:

npm install moment --save

安裝完畢后,將會(huì)在node_modules中下載moment庫。

編輯main.js,配置moment

import moment from 'moment'
Vue.prototype.moment = moment

獲取前一天的日期

var yesterDay = this.moment().subtract(1, "day").format("YYYY-MM-DD");

獲取前一個(gè)月的日期

var lastMonth = this.moment().subtract(1, 'month').format('YYYY-MM-DD')

獲取前一個(gè)年的日期

var lastYear  = this.moment().subtract(1, 'month').format('YYYY-MM-DD')

如果你想獲取前幾天或者前幾個(gè)月甚至前幾年的日期,你只需要把數(shù)字‘1’改變就行

該方法是已當(dāng)前時(shí)間為主,如果你要按照不同的時(shí)間來獲取,在’moment()'中加入對應(yīng)格式的日期字符串比如’moment(‘2022-3-21’).subtract(2, ‘day’).format(‘YYYY-MM-DD’))'

更多

let day = moment()    // 當(dāng)前時(shí)間
let day = moment('2022-01-11')
let day = moment('11/01/2022', 'MM/DD/YYYY')  
let day = moment(毫秒時(shí)間戳)
let day = moment.unix(秒時(shí)間戳)

頁面顯示

let day = moment()    // 當(dāng)前時(shí)間
day.format('YYYY年MM-DD HH:mm:ss')   // 2022年03-14 17:05:32

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論