js转换时间格式 上午下午 昨天

转换规则:
今天之内显示 “上午”/“下午” + 小时(个位不显示0) + 分钟
昨天之内显示 “昨天” + “上午”/“下午” + 小时(个位不显示0) + 分钟
昨天之前显示 月份 + “-” + 日

// 示例
var time = '2022-02-16T12:34:56.789Z'; // 变量时间
console.log(formatTime(time)); // 输出:下午 08:34
formatTime(time) {
			  // 创建时间对象
			  var date = new Date(time.replace(/-/g, "/")); (将-转为/是为了解决ios显示null的问题)
			
			  // 获取小时和分钟,确保小时只有一位数
			  var hours = date.getHours().toString().padStart(2, '0');
			  var minutes = date.getMinutes().toString().padStart(2, '0');
			
			  // 计算昨天此时的时间
			  var yesterday = new Date();
			  yesterday.setDate(yesterday.getDate() - 1);
			  var yesterdayHours = yesterday.getHours().toString().padStart(2, '0');
			  var yesterdayMinutes = yesterday.getMinutes().toString().padStart(2, '0');
			
			  // 根据时间与昨天时间的差异输出相应的格式
			  if (date.toDateString() === new Date().toDateString()) {
			    // 今天
			    if (hours > 12) {
			      return '下午 ' + (hours - 12) + ':' + minutes;
			    } else {
			      return '上午 ' + hours + ':' + minutes;
			    }
			  } else if (date.toDateString() === yesterday.toDateString()) {
			    // 昨天
			    return '昨天 ' + (hours > 12 ? '下午 ' + (hours - 12) : '上午 ' + hours) + ':' + minutes;
			  } else {
			    // 昨天之前
			    return (date.getMonth() + 1) + '月' + date.getDate() + '日';
			  }
			},
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值