moment.js 常用方法使用

1.按照依赖

复制代码
npm install moment

2.引用moment

复制代码
import moment from 'moment';

3.基础使用

javascript 复制代码
//当前时间 

//例:2024-02-02T10:26:07+08:00
moment().format()

// 例: 2024-02-02 10:49:46
moment().format('YYYY-MM-DD HH:mm:SS')

4.查询时间

javascript 复制代码
//获取当前天数
moment().date()
const num = moment('2024-02-14').date()  // 14
const num = moment('2024-02-14').format('DD')  // 14

//获取当前月份一共有多少天
moment().daysInMonth()
moment("2012-02", "YYYY-MM").daysInMonth()   //29

//获取当前时间是星期几 
//0为周一 6为周日
const num = moment('2024-02-14').weekday()  //num 为 2 ,即星期三
const num = moment('2024-02-14').format('e')  //num 为 2 ,即星期三


//1为周一  0为周日
const num = moment('2024-02-04').day()  //num 为 0 ,即周日
const num = moment('2024-02-04').format('d')  //num 为 0 ,即周日

//获取当前时间为第几季度,一共 1-4 个季度
const num = moment('2024-12-11').quarter()  //4

5.时间操作

1.加法

javascript 复制代码
// 加2天 num 为 2024-02-06
const num = moment('2024-02-04').add(2, 'days').format('YYYY-MM-DD')

// 加2月 num 为 2024-04-04
const num = moment('2024-02-04').add(2, 'month').format('YYYY-MM-DD')

// 加2年 num 为 2026-02-04
const num = moment('2024-02-04').add(2, 'years').format('YYYY-MM-DD')

2.减法

javascript 复制代码
// 减2天 num 为 2024-02-02
const num = moment('2024-02-04').subtract(2, 'days').format('YYYY-MM-DD')

// 减2月 num 为 2023-12-04
const num = moment('2024-02-04').subtract(2, 'month').format('YYYY-MM-DD')

// 减2年 num 为 2022-02-04
const num = moment('2024-02-04').subtract(2, 'years').format('YYYY-MM-DD')

3.差值

javascript 复制代码
// 计算相差天数
const date1 = moment('2024-03-14')
const date2 = moment('2024-03-04')
const num = date1.diff(date2, 'days')   //打印num  10

// 计算相差年数
const date1 = moment('2025-02-14')
const date2 = moment('2024-02-14')
const num = date1.diff(date2, 'years')  //打印num  1

4.时间开端

javascript 复制代码
//2024年开始时间  num 为 2024-01-01
const num = moment('2024-02-04').startOf('year').format('YYYY-MM-DD')

//2月开始时间  num 为 2024-02-01
const num = moment('2024-02-04').startOf('month').format('YYYY-MM-DD')

//4号开始时间  num 为 2024-02-04
const num = moment('2024-02-04').startOf('day').format('YYYY-MM-DD')

//2024-02-04即周五开始时间  num 为 2024-01-29 (周一)
const num = moment('2024-02-04').startOf('week').format('YYYY-MM-DD')

5.时间终端

javascript 复制代码
//2024年开始时间  num 为 2024-12-31
const num = moment('2024-02-04').endOf('year').format('YYYY-MM-DD')

//2月开始时间  num 为 2024-02-29
const num = moment('2024-02-04').endOf('month').format('YYYY-MM-DD')

6.获取周一,周日

javascript 复制代码
//initDate 为初始化时间  type为类型(start 代表周一,end 代表周日)
getWeekDay (initDate, type) {
      const day = moment(initDate).format('d')
      var initStartDate = ''
      var initEndDate = ''

      if (day === '0' || day === 0) {
        initStartDate = moment(initDate).subtract(6, 'days').format('YYYY-MM-DD')
        initEndDate = moment(initDate).format('YYYY-MM-DD')
      } else {
        initStartDate = moment(initDate).subtract(day - 1, 'days').format('YYYY-MM-DD')
        initEndDate = moment(initDate).subtract(day - 7, 'days').format('YYYY-MM-DD')
      }
      if (type === 'start') {
        return initStartDate
      } else {
        return initEndDate
      }
    }

7.获取两个日期中的所有时间

javascript 复制代码
 // start开始日期,end结束日期
getStartEndDay (start, end) {
      const num = moment(end).diff(moment(start), 'days') + 1
      var list = []
      for (let i = 0; i < num; i++) {
        const day = moment(start).add(i, 'days').format('YYYY-MM-DD')
        list.push(day)
      }
      return list
    }
相关推荐
酷爱码22 分钟前
Linux实现临时RAM登录的方法汇总
linux·前端·javascript
LuckyLay25 分钟前
Vue百日学习计划Day16-18天详细计划-Gemini版
前端·vue.js·学习
想要飞翔的pig42 分钟前
uniapp+vue3页面滚动加载数据
前端·vue.js·uni-app
HarryHY42 分钟前
git提交库常用词
前端
SoraLuna42 分钟前
「Mac畅玩AIGC与多模态41」开发篇36 - 用 ArkTS 构建聚合搜索前端页面
前端·macos·aigc
Wannaer44 分钟前
从 Vue3 回望 Vue2:性能优化内建化——从黑盒优化到可控编译
javascript·vue.js·性能优化
霸王蟹1 小时前
React Fiber 架构深度解析:时间切片与性能优化的核心引擎
前端·笔记·react.js·性能优化·架构·前端框架
benben0441 小时前
Unity3D仿星露谷物语开发44之收集农作物
前端·游戏·unity·游戏引擎
会功夫的李白1 小时前
uniapp自动构建pages.json的vite插件
前端·uni-app·vite
一口一个橘子1 小时前
[ctfshow web入门] web77
前端·web安全·网络安全