纵有疾风起
人生不言弃

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

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

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

原文链接:https://blog.csdn.net/weixin_42164539/article/details/127384380

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

未经允许不得转载:起风网 » moment 获取常用时间范围(本月、上月、本季度、本周、昨天、距离截止时间剩余…等)
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录