function getTimeTransition(timestamp){
let now_timestamp = (Date.parse(new Date())) / 1000;//现在时间戳
let today_timestamp = getStartEndTime();//今天的起始时间戳
let yesterday_timestamp = getStartEndTime(1);//昨天的起始时间戳
let tomorrow_timestamp = getStartEndTime(-1);//明天的起始时间戳
let acquired_timestamp = getStartEndTime(-2);//后天的起始时间戳
if(today_timestamp[0] < timestamp && today_timestamp[1] > timestamp){
//今日时间戳
return "今日"+formatDate(timestamp,"h:i")
}else{
//非今日时间戳
if((timestamp - now_timestamp) > 0){
//将来时间
console.log("将来时间")
if(tomorrow_timestamp[0] < timestamp && tomorrow_timestamp[1] > timestamp){
return "明天"+formatDate(timestamp,"h:i")
}else{
if(acquired_timestamp[0] < timestamp && acquired_timestamp[1] > timestamp){
return "后天"+formatDate(timestamp,"h:i")
}else{
let time_count = parseInt((timestamp - now_timestamp) / 86400);
if(time_count < 4){
return time_count + "天后"+formatDate(timestamp,"h:i");
}else{
return formatDate(timestamp,"m-d h:i")
}
}
}
}else{
//过去时间
console.log("过去时间")
if(yesterday_timestamp[0] < timestamp && yesterday_timestamp[1] > timestamp){
return "昨天"+formatDate(timestamp,"h:i")
}else{
let time_count = parseInt((now_timestamp - timestamp) / 86400);
if(time_count < 4){
return time_count + "天前"+formatDate(timestamp,"h:i");
}else{
return formatDate(timestamp,"m-d h:i")
}
}
}
}
//获取某天的起止时间戳(今日传入0,昨日传入1,明日传入-1)
function getStartEndTime (num = 0) {
// 一天的毫秒数
const MillisecondsADay = 24*60*60*1000 * num
// 今日开始时间戳
const todayStartTime = new Date(new Date().setHours(0, 0, 0, 0)).getTime()
// 今日结束时间戳
const todayEndTime = new Date(new Date().setHours(23,59,59,999)).getTime()
// 昨日开始时间戳
const yesterdayStartTime = todayStartTime - MillisecondsADay
// 昨日结束时间戳
const yesterdayEndTime = todayEndTime - MillisecondsADay
return [
parseInt(yesterdayStartTime / 1000),
parseInt(yesterdayEndTime / 1000)
]
}
//时间戳转指定时间
function formatDate(Unix,formate = 'Y-m-d h:i:s',complement = true,alike = false){
let current = new Date(Date.parse(new Date()));
let current_year = current.getFullYear();
let current_month = current.getMonth() + 1;
let current_date = current.getDate();
let timestamp = new Date(Unix * 1000);
let year = timestamp.getFullYear();
let month = timestamp.getMonth() + 1;
let date = timestamp.getDate();
let hour = timestamp.getHours();
let minute = timestamp.getMinutes();
let second = timestamp.getSeconds();
if(alike && current_year === year){
formate = formate.replace(/Y-/g,'');
}else{
}
if(alike && current_year === year && current_month === month && current_date === date){
formate = formate.replace(/m-d /g,'');
}
if(complement){
month = month < 10 ? '0' + month : month;
date = date < 10 ? '0' + date : date;
hour = hour < 10 ? '0' + hour : hour;
minute = minute < 10 ? '0' + minute : minute;
second = second < 10 ? '0' + second : second;
}
formate = formate.replace(/Y/g,year);
formate = formate.replace(/m/g,month);
formate = formate.replace(/d/g,date);
formate = formate.replace(/h/g,hour);
formate = formate.replace(/i/g,minute);
formate = formate.replace(/s/g,second);
return formate;
}
}
console.log(getTimeTransition(1635242400));