JS时间格式化

export const getDate = date => {
  if (date instanceof Date) {
    return date
  }
  if (typeof date === 'number') {
    return new Date(date)
  }
  if (typeof date === 'string') {
    if (date) {
      // eslint-disable-next-line no-useless-escape
      date = date.replace(/\-/g, '/')
      let newDate = new Date(date)
      // 这里判断Invalid Date的清空,做浏览器兼容性处理
      if (isNaN(newDate.getTime())) {
        date = date.replace(/\//g, '-')
        newDate = new Date(date)
      }
      return newDate
    }
    return new Date()
  }
  return new Date()
}

/**
 * 自动加'0'
 * @param time
 */
export const padDate = time => (time < 10 ? '0' + time : time + '')

/**
 * 转换时间
 * @param time 时间
 * @param format 格式
 * @param fillZero 是否自动补零
 */
export const formatDateNew = (time, format = 'YYYY-MM-DD HH:mm', fillZero = true) => {
  const date = getDate(time)
  const week = ['日', '一', '二', '三', '四', '五', '六']
  return format.replace(/YYYY|yyyy|YY|yy|MM|DD|HH|hh|mm|SS|ss|week/g, key => {
    switch (key) {
      case 'YYYY':
      case 'yyyy':
        return date.getFullYear()
      case 'YY':
      case 'yy':
        return (date.getFullYear() + '').slice(2)
      case 'MM':
        return fillZero ? padDate(date.getMonth() + 1) : date.getMonth() + 1
      case 'DD':
        return fillZero ? padDate(date.getDate()) : date.getDate()
      case 'HH':
      case 'hh':
        return fillZero ? padDate(date.getHours()) : date.getHours()
      case 'mm':
        return fillZero ? padDate(date.getMinutes()) : date.getMinutes()
      case 'SS':
      case 'ss':
        return fillZero ? padDate(date.getSeconds()) : date.getSeconds()
      case 'week':
        return week[date.getDay()]
    }
  })
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值