123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- export default function translatePublishTime(timestamp: number): string {
- let result: string
- // 获取当前时间
- const currentData = new Date()
- // 获取发布时间
- const date = new Date(timestamp)
- // 获取发布年份
- const year = date.getFullYear()
- // 获取发布月份
- const mouth = date.getMonth() + 1
- // 获取发布日期
- const day = date.getDate()
- // 获取发布小时
- const hours = date.getHours()
- // 获取发布分钟
- const minute = date.getMinutes()
- // 获取发布秒数
- const second = date.getSeconds()
- // 获取发布时间戳
- const timer = date.getTime()
- // 获取当前年份
- const currentYear = currentData.getFullYear()
- // 获取当前月份
- const currentMonth = currentData.getMonth() + 1
- // 获取当前日期
- const currentDay = currentData.getDate()
- // 获取当前小时
- const currentHours = currentData.getHours()
- // 获取当前分钟
- let currentMinute = currentData.getMinutes()
- // 获取当前秒数
- const currentSecond = currentData.getSeconds()
- // 获取当前时间戳
- const currentTimer = currentData.getTime()
- // 如果时间差小于10秒
- if ((currentTimer - timer) < 1000 * 10) {
- // 显示刚刚
- result = `刚刚`;
- // 如果时间差小于60秒
- } else if ((currentTimer - timer) < 1000 * 60) {
- // 如果当前分钟大于发布分钟
- if (currentMinute > minute) {
- // 显示秒数差
- result = `${(((currentMinute - minute) * 60) + currentSecond - second)}秒前`;
- } else {
- // 显示秒数差
- result = `${(currentSecond - second)}秒前`;
- }
- // 如果时间差小于1小时
- } else if ((currentTimer - timer) < 1000 * (60 * 60)) {
- // 如果当前小时大于发布小时
- if (currentHours > hours) {
- // 显示分钟差
- result = `${(((currentHours - hours) * 60) + currentMinute - minute)}分钟前`;
- } else {
- // 修改 昨天发布的文章时间会出现负数
- // 如果当前分钟小于发布分钟
- if (currentMinute < minute) {
- // 当前分钟加60
- currentMinute += 60
- }
- // 显示分钟差
- result = `${(currentMinute - minute)}分钟前`;
- }
- // 如果时间差小于1天
- } else if ((currentTimer - timer) < 1000 * (24 * 60 * 60)) {
- // 如果当前日期大于发布日期
- if (currentDay > day) {
- // 显示小时差
- result = `${((currentDay - day) * 24 + currentHours - hours)}小时前`;
- } else {
- // 修改 跨月-昨天发布的文章时间会出现负数
- // 如果当前月份不等于发布月份
- if (currentMonth !== mouth) {
- // 显示小时差
- result = `${(24 + currentHours - hours)}小时前`;
- } else {
- // 显示小时差
- result = `${(currentHours - hours)}小时前`;
- }
- }
- // 如果发布年份等于当前年份
- } else if (currentYear === year) {
- // 显示月份和日期
- result = `${mouth}月${day}日`;
- } else {
- // 显示年份、月份和日期
- result = `${year}年${mouth}月${day}日`;
- }
- return result // 返回结果
- }
|