js获取常用日期方法

js日期常用方法

/**
 * 时间格式化
 * @param { String|Date } time 时间,可以是时间字符串,也可以是时间对象,如果传入为空,则默认使用当前时间
 * @param { String } formats 格式化类型 默认值YYYY-MM-DD
 * @return { String } 返回格式化后的时间字符串
 * 在vue实例里面可以如下使用 this.$common.formatDate('2019/9/11 11:22:44', 'YYYY-MM-DD HH:mm:ss')
 */
export const formatDate = (time, formats = 'YYYY-MM-DD') => {
  // 转Date对象
  time = time ? new Date(time) : new Date()
  // 小于10添加0前缀
  const zero = (value) => (value < 10 ? '0' + value : value)
  // 年
  const year = time.getFullYear()
  // 月
  const month = zero(time.getMonth() + 1)
  // 日
  const day = zero(time.getDate())
  // 时
  const hours = zero(time.getHours())
  // 分
  const minutes = zero(time.getMinutes())
  // 秒
  const millisecon = zero(time.getSeconds())
  // map
  const timeMap = {
    YYYY: year,
    MM: month,
    DD: day,
    HH: hours,
    mm: minutes,
    ss: millisecon
  }
  return formats.replace(/YYYY|MM|DD|HH|mm|ss/g, (matches) => timeMap[matches])
}
  /*
   * 获取当前时间
   * @author xzd
   * @param code
   */
  conver(s) {
    return s < 10 ? '0' + s : s
  },
  getCurDate() {
    const myDate = new Date()

    // 获取当前年
    const year = myDate.getFullYear()

    // 获取当前月
    const month = myDate.getMonth() + 1

    // 获取当前日
    const date = myDate.getDate()
    const h = myDate.getHours() // 获取当前小时数(0-23)
    const m = myDate.getMinutes() // 获取当前分钟数(0-59)
    const s = myDate.getSeconds()

    // 获取当前时间
    const day = year + '-' + commonFun.conver(month) + '-' + commonFun.conver(date)
    const hour = commonFun.conver(h) + ':' + commonFun.conver(m) + ':' + commonFun.conver(s)
    const now = day + ' ' + hour
    return {
      dayHour: now,
      day,
      hour
    }
  },

  // 获取当天的开始与结束日期
  GetTodayDate(addDate = 0, addTime = true) {
    var dd = new Date()
    dd.setDate(dd.getDate() + addDate) // 获取第addDate天后的日期
    var y = dd.getFullYear()
    var m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0
    var d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0
    let start = y + '-' + m + '-' + d
    addTime ? (start = start + ' ' + '00:00:00') : ''
    let end = y + '-' + m + '-' + d
    addTime ? (end = end + ' ' + '23:59:59') : ''
    return [start, end]
  },
  
  // 获取当前年月份
  GetYearMonth(addDate = 0) {
    var dd = new Date()
    dd.setDate(dd.getDate() + addDate) // 获取第addDate天后的日期
    var y = dd.getFullYear()
    var m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0
    const start = y + '-' + m
    const end = y + '-' + m
    return [start, end]
  },
  
  // 获取当天日期的前7天日期
  getBeforeDate(n, type = '-') {
    const d = new Date()
    let year = d.getFullYear()
    let mon = d.getMonth() + 1
    let day = d.getDate()
    if (day <= n) {
      if (mon > 1) {
        mon = mon - 1
      } else {
        year = year - 1
        mon = 12
      }
    }
    d.setDate(d.getDate() - n)
    year = d.getFullYear()
    mon = d.getMonth() + 1
    day = d.getDate()
    const s = year + type + (mon < 10 ? '0' + mon : mon) + type + (day < 10 ? '0' + day : day)
    return s
  },

你可能感兴趣的:(js方法,javascript,开发语言,ecmascript)