moment 获取常用时间范围(本月、上月、本季度、本周、昨天、距离截止时间剩余...等)

这段代码展示了如何使用moment.js库来获取和格式化当前时间、昨天、本周、上周、本月、上月、本季度、上季度、本年和去年的起始与结束时间。还提供了一个计算截止日期的函数,并讨论了其他相关的时间操作,如检查时间点之间关系的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

moment

当前时间

const startTime = moment(moment().valueOf()).format('YYYY/MM/DD HH:mm:ss');

昨天

const startTime = moment(moment().add(-1, 'days').startOf('day').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().add(-1, 'days').endOf('day').valueOf()).format('YYYY/MM/DD HH:mm:ss');

本周

const startTime = moment(moment().week(moment().week()).startOf('week').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().week(moment().week()).endOf('week').valueOf()).format('YYYY/MM/DD HH:mm:ss');

上周

const startTime = moment(moment().week(moment().week() - 1).startOf('week').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().week(moment().week() - 1).endOf('week').valueOf()).format('YYYY/MM/DD HH:mm:ss');

本月

const startTime = moment(moment().month(moment().month()).startOf('month').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().month(moment().month()).endOf('month').valueOf()).format('YYYY/MM/DD HH:mm:ss');

上月

const startTime = moment(moment().month(moment().month() - 1).startOf('month').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().month(moment().month() - 1).endOf('month').valueOf()).format('YYYY/MM/DD HH:mm:ss');

本季度

const startTime = moment(moment().quarter(moment().quarter()).startOf('quarter').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().quarter(moment().quarter()).endOf('quarter').valueOf()).format('YYYY/MM/DD HH:mm:ss');

上季度

const startTime = moment(moment().quarter(moment().quarter() - 1).startOf('quarter').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().quarter(moment().quarter() - 1).endOf('quarter').valueOf()).format('YYYY/MM/DD HH:mm:ss');

本年

const startTime = moment(moment().year(moment().year()).startOf('year').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().year(moment().year()).endOf('year').valueOf()).format('YYYY/MM/DD HH:mm:ss');

去年

const startTime = moment(moment().year(moment().year() - 1).startOf('year').valueOf()).format('YYYY/MM/DD HH:mm:ss');
const endTime = moment(moment().year(moment().year() - 1).endOf('year').valueOf()).format('YYYY/MM/DD HH:mm:ss');

根据设置,计算截止时间。

// 计算截止天数
export const countDeadline = (
  create_time: string | Date,
  insideDays: string | number
) => {
  return `${moment(Number(create_time))
    .add(insideDays, 'day')
    .diff(Number(create_time), 'day')}`
}

其他

上面如果是下一个时间,就 + 1 即可

从某一个时间开始获取本月、下周可以👇:

const curWeekStartTime = moment(
   moment()
     .week(moment(Number(time)).week())
     .startOf('week')
     .valueOf(),
 ).format('YYYY.MM.DD')

默认获取结束时间的格式是,23:59:59,需要改成 00:00 可以使用 set API:


.set({ hour: 0, minute: 0, second: 0, millisecond: 0 })

还有一些比如是否在某个时间之间(isBefore)、是否在某个时间之后(isAfter

还有新操作常规会持续更新…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值