仿微信 时间转换成昨天,周几,年月日等

仿微信 时间转换成昨天,周几,年月日等

有的时候业务需求要把时间转换成自己想要的格式,

比如微信的时间格式 昨天 12:00 星期一 上午 10:00 或 2020年4月23日 下午 14:00

话不多说代码如下

// 重要的执行方法
function trans(date) {
  var timestamp = getTimestamp(date)
  var d = new Date(timestamp)
  var t = new Date()
  var objd = {
    'Y': d.getFullYear(),
    'm': parseInt(d.getMonth()) + 1,
    'd': parseInt(d.getDate()),
    'w': d.getDay(),
    'H': d.getHours(),
    'i': d.getMinutes(),
    's': d.getSeconds(),
  }
  //分钟小于10 加一个0
  if(d.getMinutes()<10){
    objd.i = '0'+ objd.i
  }
  var objt = {
    'Y': t.getFullYear(),
    'm': parseInt(t.getMonth()) + 1,
    'd': parseInt(t.getDate()),
    'w': t.getDay(),
    'H': t.getHours(),
    'i': t.getMinutes(),
    's': t.getSeconds(),
  }

  var timeStr = ''
  var dayPerMonthAddTime = getDayPerMonth(objd.Y)
  var week = ['周日','周一','周二','周三','周四','周五','周六']

  if(objd.Y == objt.Y && objd.m == objt.m && objd.d == objt.d) {
    //判断当天
    timeStr += objd.H + ':' + objd.i

  } else if ((objd.Y == objt.Y && objd.m == objt.m && objd.d == objt.d - 1) || (objd.Y == objt.Y && objt.m - objd.m == 1 && dayPerMonthAddTime[objd.m] == objd.d && objt.d == 1) || (objt.Y - objd.Y == 1 && objd.m == 12 && objd.d == 31 && objt.m == 1 && objt.d == 1)) {
    //判断昨天
    timeStr += '昨天 ' + objd.H + ':' + objd.i + ' '
  } else if ((objd.Y == objt.Y && objd.m == objt.m && objt.d - objd.d < 7) || (objd.Y == objt.Y && objt.m - objd.m == 1 && dayPerMonthAddTime[objd.m] - objd.d + objt.d < 7|| (objt.Y - objd.Y == 1 && objd.m == 12 && objt.m == 1 && 31 - objd.d + objt.d < 7))) {
    //判断为七天内显示为周几
    timeStr += week[objd.w] + ' ' + objd.H + ':' + objd.i

  } else {
    //直接展示年月日
    timeStr += objd.Y + '年' + objd.m + '月' + objd.d + '日 ' + objd.H + ':' + objd.i
  }

**#判断上下午,不要可以注释掉**
  // if(objd.H < 13) {
  //   timeStr += ' 上午'
  // } else {
  //   timeStr += ' 下午'
  // }

  return timeStr
}

function getTimestamp(date) {
  return Date.parse(new Date(date))
}
//月份
function getDayPerMonth(year) {
  var arr = []
  arr[1] = 31
  arr[3] = 31
  arr[4] = 30
  arr[5] = 31
  arr[6] = 30
  arr[7] = 31
  arr[8] = 31
  arr[9] = 30
  arr[10] = 31
  arr[11] = 30
  arr[12] = 31

  //闰年
  if((year%4 == 0 && year%100 != 0) || (year%400 == 0)) {
    arr[2] = 29
  } else {
    arr[2] = 28
  }
  return arr
}

**#最后不要忘了把方法导出**

module.exports = {
   trans
}

使用方法

该代码是在微信小程序utils文件里的,如需使用 文件名.方法名(要转换的时间)

例子:utils.trans(‘2020-04-23 12:00’)

注意注意注意 ios设备需要转化时间格式为2020/04/23 12:00

实现效果

今天的时间: 今天的时间
昨天的时间:
昨天的时间
星期几的时间:
星期几的时间

年月日的时间:
年月日的时间

拜拜~~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值