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));