js 10位、13位时间戳转日期方法

js 处理服务器返回的10位或者13位时间戳转为日期方法很简单

/**
 * 日期格式化
 * @param Number time 时间戳
 * @param String format 格式
 */
function dateFormat (time, format) {
  const t = new Date(time)
  // 日期格式
  format = format || 'Y-m-d h:i:s'
  let year = t.getFullYear()
  // 由于 getMonth 返回值会比正常月份小 1
  let month = t.getMonth() + 1
  let day = t.getDate()
  let hours = t.getHours()
  let minutes = t.getMinutes()
  let seconds = t.getSeconds()

  const hash = {
    'y': year,
    'm': month,
    'd': day,
    'h': hours,
    'i': minutes,
    's': seconds
  }
  // 是否补 0
  const isAddZero = (o) => {
    return /M|D|H|I|S/.test(o)
  }
  return format.replace(/\w/g, o => {
    let rt = hash[o.toLocaleLowerCase()]
    return rt > 10 || !isAddZero(o) ? rt : `0${rt}`
  })
}

dateFormat(1558259949034, 'Y-M-D H:I:S') 返回结果是 2019-05-19 17:59:09,如果是10位时间戳,参数1需要*1000

拿走不谢!

posted @ 2021-03-02 18:28  叫我汤先森  阅读(4309)  评论(0)    收藏  举报