moment()获取以天、周、月、季度、年为单位的具体时间

某些场景中,我们需要快速筛选以天、周、月、季度、年为条件的数据,并且需要传给后端要求的时间格式

对此,我们可以手写方法 使用new Date()封装方法获取需要的某些时间格式xxxx-xx-xx 达到目的,除此之外还有一个快捷的方法,即moment
在前端许多组件库中,时间选择框大多数也是采用moment来获取时间,因此了解moment的一些基础方法也是非常必要的。

模拟数据为,当前时间:2021.01.20(周三),本周一:2021.01.18,本周日:2021.01.24

以“天”为单位的时间获取

  1. 今天
moment().startOf('days').format('YYYY-MM-DD HH:mm:ss');   // 开始时间 2021-01-20 00:00:00
moment().endOf('days').format('YYYY-MM-DD HH:mm:ss');  // 结束时间 2021-01-20 23:59:59
  1. 昨天
moment().startOf('days').subtract(1,'days').format('YYYY-MM-DD HH:mm:ss');   // 开始时间 2021-01-19 00:00:00
moment().endOf('days').subtract(1,'days').format('YYYY-MM-DD HH:mm:ss');  // 结束时间 2021-01-19 23:59:59

以“周”为单位的时间获取

  1. 本周
moment() .startOf('weeks').format('YYYY-MM-DD');   // 本周开始日期 2021-01-18
moment().endOf('weeks').format('YYYY-MM-DD');  // 本周结束日期 2021-01-24
  1. 上周
moment().startOf('weeks').subtract(1, 'weeks').format('YYYY-MM-DD');  // 上周开始日期
moment().endOf('weeks').subtract(1, 'weeks').format('YYYY-MM-DD');  // 上周结束日期
  1. 具体星期x
moment().day(0).format('YYYY-MM-DD');   // 上一个周日 2021-01-17
moment().day(1).format('YYYY-MM-DD');  // 本周一:2021-01-18
moment().day(2).format('YYYY-MM-DD');  // 本周二:2021-01-19
moment().day(7).format('YYYY-MM-DD');  // 本周日:2021-01-24
moment().day(14).format('YYYY-MM-DD');  // 本周日的下一个周日:2021-01-31
moment().format('dddd');  // 星期三

以“月”为单位的时间获取

  1. 本月
moment().startOf('months').format('YYYY-MM-DD');   // 本月开始 2021-01-01
moment().endOf('months').format('YYYY-MM-DD');  // 本月结束  2021-01-31
  1. 上月
moment().startOf('months').subtract(1,'months').format('YYYY-MM-DD');  // 上月开始 2020-12-01
moment().endOf('months').subtract(1,'months').format('YYYY-MM-DD');  // 上月结束 2020-12-31

以“季度”为单位的时间获取

  1. 本季度
moment().startOf('quarters').format('YYYY-MM-DD');   // 本季度开始 2021-01-01
moment().endOf('quarters').format('YYYY-MM-DD');   // 本季度结束 2021-03-31

以“年”为单位的时间获取

  1. 本年
moment().startOf('years').format('YYYY-MM-DD');  // 本年开始  2021-01-01
moment().endOf('years').format('YYYY-MM-DD');  // 本年结束 2021-12-31

其他常见的时间获取方法

模拟数据:当前时间是 17:56

moment().startOf('day').fromNow();  // 18小时前
moment().endOf('day').fromNow(); // 6小时后
moment().startOf('hour').fromNow();  // 1小时前

moment().format('LT');   // 17:56
moment().format('LTS');  // 17:56:04
moment().format('L');  // 2021/1/20
moment().format('l');  // 2021/1/20
moment().format('LL');  // 2021年1月20日
moment().format('ll');  // 2021年1月20日
moment().format('LLL');  // 2021年1月20日下午5点56分
moment().format('lll'); // 2021年1月20日 17:56
moment().format('LLLL');  // 2021年1月20日星期三下午5点56分
moment().format('llll');  // 2021年1月20日星期三 17:56

额外补充
1.为了方便起见,从 2.0.0 版本开始,单数和复数的方法名称都会存在。
2.小时代表字母HH 表示24小时制,字母hh 标识12小时制。
3.YYYY-MM-DD,也可以被写成YYYY/MM/DD或者YYYY.MM.DD或者其他需要传给后端的形式。

可以直接copy使用,希望帮助到路过的小伙伴哦~

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值