JS依据时候戳 或 yyyy-MM-dd HH:mm:ss来猎取前天、本日、来日诰日、后天等

时候戳或yyyy-MM-dd HH:mm:ss

因为项目有多个后端职员,难免会涌现返回时候款式不一致征象,但前端显现又要一致,先上代码

// params => "2019-04-02 17:11:55" OR 1554257391000 (毫秒) 只需挪用此函数
function formatRecentTime(params) {
  var date = ''
  if (isNaN(params)) { // 推断是不是是时候戳
    date = params.toString()
  } else {
    date = timeFormat(params)
  }
  var year = date.substring(0, 4)
  var month = date.substring(5, 7)
  var day = date.substring(8, 10)
  var hour = date.substring(11, 13)
  var minute = date.substring(14, 16)
  var seconds = date.substring(17, 19)
  var orignDate = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + seconds
  var yesterday = GetDateStr(-1)// 昨天
  var yesterdayStr = yesterday.split('-')
  yesterdayStr[1] = yesterdayStr[1].length === 1 ? '0' + yesterdayStr[1] : yesterdayStr[1]
  yesterdayStr[2] = yesterdayStr[2].length === 1 ? '0' + yesterdayStr[2] : yesterdayStr[2]

  var today = GetDateStr(0)// 本日
  var todayStr = today.split('-')
  todayStr[1] = todayStr[1].length === 1 ? '0' + todayStr[1] : todayStr[1]
  todayStr[2] = todayStr[2].length === 1 ? '0' + todayStr[2] : todayStr[2]

  var tomorrow = GetDateStr(1)// 来日诰日
  var tomorrowStr = tomorrow.split('-')
  tomorrowStr[1] = tomorrowStr[1].length === 1 ? '0' + tomorrowStr[1] : tomorrowStr[1]
  tomorrowStr[2] = tomorrowStr[2].length === 1 ? '0' + tomorrowStr[2] : tomorrowStr[2]

  var afterTomorrow = GetDateStr(2)// 后天
  var afterTomorrowStr = afterTomorrow.split('-')
  afterTomorrowStr[1] = afterTomorrowStr[1].length === 1 ? '0' + afterTomorrowStr[1] : afterTomorrowStr[1]
  afterTomorrowStr[2] = afterTomorrowStr[2].length === 1 ? '0' + afterTomorrowStr[2] : afterTomorrowStr[2]

  if (year === yesterdayStr[0] && month === yesterdayStr[1] && day === yesterdayStr[2]) {
    return '昨天' + ' ' + hour + ':' + minute
  } else if (year === todayStr[0] && month === todayStr[1] && day === todayStr[2]) {
    return '本日' + ' ' + hour + ':' + minute
  } else if (year === tomorrowStr[0] && month === tomorrowStr[1] && day === tomorrowStr[2]) {
    return '来日诰日' + ' ' + hour + ':' + minute
  } else if (year === afterTomorrowStr[0] && month === afterTomorrowStr[1] && day === afterTomorrowStr[2]) {
    return '后天' + ' ' + hour + ':' + minute
  } else {
    return orignDate
  }
}

// 时候戳转化成时候花样
function timeFormat(timestamp) {
  var time = new Date(timestamp)
  var year = time.getFullYear()
  var month = time.getMonth() + 1
  var date = time.getDate()
  var hours = time.getHours()
  var minutes = time.getMinutes()
  var seconds = time.getSeconds()
  return year + '-' + add0(month) + '-' + add0(date) + ' ' + add0(hours) + ':' + add0(minutes) + ':' + add0(seconds)
}

// 保证不涌现个位数状况
function add0(m) { return m < 10 ? '0' + m : m }

function GetDateStr(AddDayCount) {
  var dd = new Date()
  dd.setDate(dd.getDate() + AddDayCount)
  var y = dd.getFullYear()
  var m = dd.getMonth() + 1
  var d = dd.getDate()
  return y + '-' + m + '-' + d
}
    原文作者:徐鹏云
    原文地址: https://segmentfault.com/a/1190000018750821
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞