转换规则:
今天之内显示 “上午”/“下午” + 小时(个位不显示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() + '日';
}
},