亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

/**
? ?* 根據(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
? ? // 如果今天是周日,則單獨處理,往前計算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;
? }

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

/**
? ?* 根據(jù)一個日期計算出其所在的一月,反正對應(yīng)一月的相應(yīng)日期
? ?* basisDate: 依據(jù)日期, 默認(rèn)是當(dāng)天
? ?* replenishWeek: 是否需要將該月第一天和最后一天所在的周補全(通日歷類似),默認(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ù),補全該月第一天和最后一天所在的周
? ? ? // 調(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) { // 如果是周一,則一天也不會加
? ? ? ? // 一次減1;即分別在第一天的基礎(chǔ)上減一天、兩天、三天....;然后放到數(shù)組的前面
? ? ? ? monthDate.unshift(moment(monthStart).subtract(minusNum, 'days').format('YYYY-MM-DD'));
? ? ? ? minusNum++;
? ? ? }
? ? ??
? ? ? if (monthEndWeek !== 0) { ? // 如果最后一天是周日,則不補齊剩余日期
? ? ? ? // 7 - monthEndWeek 即這個月最后一天后面要加的天數(shù)(一周是7天) =>> 往后把一周補全(最后以周六結(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來解決時間問題

場景

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

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

解決辦法

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

使用步驟

安裝:

npm install moment --save

安裝完畢后,將會在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");

獲取前一個月的日期

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

獲取前一個年的日期

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

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

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

更多

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

頁面顯示

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

總結(jié)

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

相關(guān)文章

  • js分頁顯示div的內(nèi)容

    js分頁顯示div的內(nèi)容

    對于div內(nèi)容過高的情況,我們可以用js控制div分頁
    2008-07-07
  • JS實現(xiàn)按比例縮放圖片的方法(附C#版代碼)

    JS實現(xiàn)按比例縮放圖片的方法(附C#版代碼)

    這篇文章主要介紹了JS實現(xiàn)按比例縮放圖片的方法,結(jié)合實例形式較為詳細(xì)的分析了JavaScript實現(xiàn)等比例縮放圖片的原理與具體實現(xiàn)技巧,并附上C#版的圖片縮放代碼做對比參考,需要的朋友可以參考下
    2015-12-12
  • uniapp實現(xiàn)可滑動選項卡

    uniapp實現(xiàn)可滑動選項卡

    這篇文章主要為大家詳細(xì)介紹了uniapp實現(xiàn)可滑動選項卡,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • javascript 中iframe高度自適應(yīng)(同域)實例詳解

    javascript 中iframe高度自適應(yīng)(同域)實例詳解

    這篇文章主要介紹了javascript 中iframe高度自適應(yīng)(同域)實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 獲取焦點時,利用js定時器設(shè)定時間執(zhí)行動作

    獲取焦點時,利用js定時器設(shè)定時間執(zhí)行動作

    網(wǎng)上有很多類似的知識,并不是有什么難度的技巧,僅僅是開發(fā)過程中的一點點積累而已。
    2010-04-04
  • 微信小程序scroll-view錨點鏈接滾動跳轉(zhuǎn)功能

    微信小程序scroll-view錨點鏈接滾動跳轉(zhuǎn)功能

    這篇文章主要介紹了微信小程序scroll-view錨點鏈接滾動跳轉(zhuǎn)功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • 圖片上傳之FileAPI與NodeJs

    圖片上傳之FileAPI與NodeJs

    本文主要介紹了使得我們處理圖片上傳更加簡單的方法FileAPI。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 24行JavaScript代碼實現(xiàn)Redux的方法實例

    24行JavaScript代碼實現(xiàn)Redux的方法實例

    這篇文章主要給大家介紹了關(guān)于如何利用24行JavaScript代碼實現(xiàn)Redux的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • javascript中checkbox使用方法實例演示

    javascript中checkbox使用方法實例演示

    這篇文章通過簡單的實例演示了javascript中checkbox使用方法,感興趣的小伙伴們可以參考一下
    2015-11-11
  • js鼠標(biāo)滑過彈出層的定位IE6bug解決辦法

    js鼠標(biāo)滑過彈出層的定位IE6bug解決辦法

    大家在寫div+css的時候經(jīng)常會用到彈出層,由于IE6的bug,所以當(dāng)使用多個標(biāo)簽重復(fù)寫彈出層的時候會遇到后面的層壓在了彈出層的上面;用Jquery給彈出層的z軸依次增加高度可解決.代碼很簡單,效果很顯著,需要了解的朋友可以參考下
    2012-12-12

最新評論