moment的简单使用

基础用法--获取时间点

//获取当前时间
moment().format("YYYY-MM-DD HH:mm:ss");  
//当前时间的前10天日期
moment().subtract(10, "days").format("YYYY-MM-DD");
//当前时间的前1年时间
moment().subtract(1, "years").format("YYYY-MM-DD");  
**//当前时间的前3个月时间**
moment().subtract(3, "months").format("YYYY-MM-DD"); 
//当前时间的前一个星期时间
moment().subtract(1, "weeks").format("YYYY-MM-DD");

获取时间范围

//获取本日时间 
const startDate = moment().format('YYYY-MM-DD');
//获取本周开始结束日期
const startDate=moment().week(moment().week()).startOf('week').format('YYYY-MM-DD'); //年月日的格式 
const endDate = moment().week(moment().week()).endOf('week').valueOf(); //时间戳的格式  
//获取本月开始结束日期 
const startDate = moment().month(moment().month()).startOf('month').valueOf(); 
const endDate = moment().month(moment().month()).endOf('month').valueOf(); 
//获取本年开始结束日期  
const startDate = moment().year(moment().year()).startOf('year').valueOf(); 
const endDate = moment().year(moment().year()).endOf('year').valueOf();

封装获取本周、前 n 周、后 n 周开始结束日期(即周一、周日日期)的方法

封装工具类DateTime.js,可直接复制到项目中使用

/**
 * 时间日期工具类
 */
import moment from 'moment'

export default {
  //获取本周周一和周日日期
  getCurrentWeek() {
    const start = moment().weekday(1).format('YYYY-MM-DD'); //本周一日期
    const end = moment().weekday(7).format('YYYY-MM-DD'); //本周日日期
    return {start, end}
  },

  /**
   * 获取前 i 周的周一和周日日期
   * 当 i=1,获取的是上周一和上周日的日期;
   * 当 i=2,获取的是上上周一和上上周日的日期
   * ...
   * @param i
   */
  getLastWeek(i) {
    const weekOfDay = parseInt(moment().format('E'));//计算今天是这周第几天
    const last_monday = moment().subtract(weekOfDay + 7 * i - 1, 'days').format('YYYY-MM-DD');//周一日期
    const last_sunday = moment().subtract(weekOfDay + 7 * (i - 1), 'days').format('YYYY-MM-DD');//周日日期
    return {last_monday, last_sunday}
  }

  /**
   * 获取后 i 周的周一和周日日期
   * 当 i=1,获取的是下周一和下周日的日期;
   * 当 i=2,获取的是下下周一和下下周日的日期
   * ...
   * @param i
   */
  getNextWeek(i) {
    const weekOfDay = parseInt(moment().format('E'));//计算今天是这周第几天
    const next_monday = moment().add((7 - weekOfDay) + 7 * (i - 1) + 1, 'days').format('YYYY-MM-DD');//周一日期
    const next_sunday = moment().add((7 - weekOfDay) + 7 * i, 'days').format('YYYY-MM-DD');//周日日期
    return {next_monday, next_sunday}
  }
}

调用实例:

const currentWeek1 = DateTimeUtils.getCurrentWeek()  //获取本周开始结束日期
const currentWeek2 = DateTimeUtils.getLastWeek(0)  //获取本周开始结束日期
const currentWeek3 = DateTimeUtils.getNextWeek(0)  //获取本周开始结束日期

const lastWeek1 = DateTimeUtils.getLastWeek(1)  //获取上周开始结束日期
const lastWeek2 = DateTimeUtils.getLastWeek(2)  //获取上上周开始结束日期
const lastWeek3 = DateTimeUtils.getLastWeek(3)  //获取前三周开始结束日期

const nextWeek1 = DateTimeUtils.getNextWeek(1)  //获取下周开始结束日期
const nextWeek2 = DateTimeUtils.getNextWeek(2)  //获取下下周开始结束日期
const nextWeek3 = DateTimeUtils.getNextWeek(3)  //获取后三周开始结束日期

你可能感兴趣的:(javascript,前端,node.js)