先创建一个数组:
[
{id: 1, createDate: '2023-06-05 17:02:45'},
{id: 2, createDate: '2023-06-04 17:02:45'},
{id: 3, createDate: '2023-06-04 17:02:45'},
{id: 4, createDate: '2023-01-01 17:02:45'},
{id: 4, createDate: '2022-09-09 17:02:45'}
]
要求:今天(17:02),昨天(昨天),前天(前天),今年(01-01),去年(2022-09-09)
data.map(items => {
let dataTime = Date.parse(new Date(items.createDate)) // 现在时间
let todayTime = new Date(new Date().setHours(0,0,0,0)).getTime();// 当天0点
let differTime = todayTime - dataTime
if ( new Date(dataTime).getDate() === new Date().getDate() && new Date(dataTime).getMonth() === (new Date().getMonth()) && new Date(dataTime).getFullYear() === (new Date().getFullYear()) ) {
items.createDate = items.createDate.slice(11, 16)
} else if ( differTime >=0 && differTime < 86400000 && new Date(dataTime).getFullYear() === (new Date().getFullYear()) ) {
items.createDate = "昨天"
} else if ( differTime >=86400000 && differTime < 172800000 && new Date(dataTime).getFullYear() === (new Date().getFullYear()) ){
items.createDate = "前天"
} else if (new Date(dataTime).getFullYear() === (new Date().getFullYear())) {
items.createDate = items.createDate.slice(5, 10)
} else if (new Date(dataTime).getFullYear() !== (new Date().getFullYear())) {
items.createDate = items.createDate.slice(0, 10)
}
})
补充:时间戳转换
const a = new Date()
//Mon Jun 05 2023 15:47:37 GMT+0800 (中国标准时间)
//中国标准时间转为时间戳
const b = Date.parse(new Date())
//时间戳转化为中国标准时间
const c = new Date(b)
//时间戳转换为 yyyy-mm-dd或yyyy-MM-dd HH-mm-ss
function timestampToTime(timestamp) {
var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1):date.getMonth()+1) + '-';
var D = (date.getDate()< 10 ? '0'+date.getDate():date.getDate())+ ' ';
var h = (date.getHours() < 10 ? '0'+date.getHours():date.getHours())+ ':';
var m = (date.getMinutes() < 10 ? '0'+date.getMinutes():date.getMinutes()) + ':';
var s = date.getSeconds() < 10 ? '0'+date.getSeconds():date.getSeconds();
return Y+M+D+h+m+s;
}
//yyyy-mm-dd或yyyy-MM-dd HH-mm-ss 转为时间戳
var Time = '2023-06-05 17:02:45';
var timestamp = Date.parse(new Date(Time));
//中国标准时间转为 yyyy-mm-dd hh-mm-ss
let y = date.getFullYear()
let m = date.getMonth() + 1
m = m < 10 ? ('0' + m) : m
let d = date.getDate()
d = d < 10 ? ('0' + d) : d
let h =date.getHours()
h = h < 10 ? ('0' + h) : h
let M =date.getMinutes()
M = M < 10 ? ('0' + M) : M
let s =date.getSeconds()
s = s < 10 ? ('0' + s) : s
return y + '-' + m + '-' + d + ' ' + h + ':' + M + ':' + s;