Moment.js 常见用法,常见API

一、当前年

   moment().format("YYYY")   // 字符串 2020

   moment().year() / moment().get('year')  // 数字 2020

二、当前月

moment().format('MM')  // 九月的话,会显示 字符串 09

moment().month() / moment().get('month') // 九月的话,会显示 数字 8

三、当前星期几

moment().format('dddd')  // 星期天的话,会显示Sunday

moment().locale('zh-cn').format('dddd')  // 星期天的话,中文显示星期日

moment().day() / moment().get('day')   // 星期天的话,会显示 数字 0

moment().get('isoWeekday')   // 星期天的话,会显示 数字 7

四、当前几号

moment().date() / moment().get('date'  // 今天时27号,会显示 数字 27

五、当前年月日

moment().format('YYYY-MM-DD')  // 会显示2020-09-27

moment().format('YYYY/MM/DD')  // 会显示2020/09/27

六、当前时分秒

moment().format('HH:mm:ss')  // 会显示24小时制的时间17:19:55

moment().format('hh:mm:ss')  // 会显示12小时制的时间05:19:55

七、当前月总天数

moment().daysInMonth()  // 九月小,只有三十天,会显示 数字 30

八、当前时间戳

moment().format('X')  // 返回字符串,时间戳以秒为单位

moment().numx()  // 返回 数字,时间戳以秒为单位

moment().format('x')  // 返回字符串,时间戳以毫秒为单位

moment().valueOf('x')  // 返回 数字,时间戳以毫秒为单位

九、当前年月日时分秒

moment().toArray()  // 返回数组,[2020, 8, 27, 17, 40, 19, 364]

moment().toObject()  // 返回对象,{date: 27, hours: 17, milliseconds: 364, minutes: 40, months: 8, seconds: 19, years: 2020}

十、设置时间

1、设置年份(月(month)、天(date)、星期(weekday/isoWeekday)、小时(hours)、分钟(minutes)、秒(seconds)同理)

moment().year(2019)  // 返回 Moment对象, 为2019年

moment().set('year', 2019)

moment().set({year: 2019})

moment().add(1, 'years') /  moment().add({years: 1}// 返回 Moment对象, 今年2020年,返回2021年

moment().subtract(1, 'years') /  moment().subtract({years: 1}) // 返回 Moment对象, 今年2020年,返回2021年

十一、转化为JavaScript 原生Date对象

moment().toDate()

new Date(moment())

十二、比较

moment().diff(Moment | String | Number | Date | Array)

十三、需要获取任意一天的起始和结束时间,0点和23:59:59这两个时间的时间戳

1、获取任意一天的开始时间

// time为某一天的时间戳
startTime(time) {
    const timeDate = new Date(time)
    return timeDate.setHours(0, 0, 0, 0)
}

2、 获取任意一天的结束时间

endTime(time) {
    const timeDate = new Date(time)
    return timeDate.setHours(23, 59, 59, 999)
}

3、时间格式化转换实用方法

export const formatDate = (timestamp, fmt) => {
  if (timestamp === null) {
    return null
  }
  if (typeof (timestamp) === 'string' && !/^d*$/.test(timestamp)) {
    let lastIndexOf = timestamp.lastIndexOf('.')
    if (lastIndexOf > 0) {
      // 去掉毫秒,不然转成Date对象会报错
      timestamp = timestamp.substring(0, lastIndexOf)
    }
    timestamp = timestamp.replace(/-/g, '/')
  }
  let date = new Date(timestamp)
  let o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours(), // 小时
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    'S': date.getMilliseconds() // 毫秒
  };
  let result = fmt;
  if (/(y+)/.test(result)) {
    result = result.replace(RegExp.$1, (date.getFullYear().toString()).substr(4 - RegExp.$1.length));
  }
  for (let k in o) {
    if (new RegExp(`(${k})`).test(result)) {
      result = result.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : `00${o[k]}`.substr(o[k].toString().length));
    }
  }
  return result;
}
//formatDate(new Date().setHours(0, 0, 0, 0), 'yyyy-MM-dd hh:mm')---》 当天0时0分的时间
//formatDate(new Date().setHours(23, 59, 59, 999), 'yyyy-MM-dd hh:mm')---》 当天23时59分的时间

  

原文地址:https://www.cnblogs.com/CandyDChen/p/13741077.html