Explorar o código

fix:修复信息列表时间未格式化的问题

yangyi hai 4 meses
pai
achega
a24c701011
Modificáronse 1 ficheiros con 16 adicións e 1 borrados
  1. 16 1
      src/view/Messages.vue

+ 16 - 1
src/view/Messages.vue

@@ -17,7 +17,7 @@
             <div class="conv-info">
               <div class="conv-header">
                 <span class="conv-name">{{ conv.nickname }}</span>
-                <span class="conv-time">{{ conv.lastMessageTime }}</span>
+                <span class="conv-time">{{ formatTime(conv.lastMessageTime) }}</span>
               </div>
               <p class="conv-preview">{{ conv.lastMessage }}</p>
             </div>
@@ -42,6 +42,21 @@ const router = useRouter()
 const conversations = ref<ConversationVO[]>([])
 const loading = ref(false)
 
+const formatTime = (iso?: string) => {
+  if (!iso) return ''
+  const d = new Date(iso)
+  const pad = (n: number) => n.toString().padStart(2, '0')
+  const now = new Date()
+  const sameYear = d.getFullYear() === now.getFullYear()
+  if (sameYear && d.getDate() === now.getDate() && d.getMonth() === now.getMonth()) {
+    return `${pad(d.getHours())}:${pad(d.getMinutes())}`
+  }
+  if (sameYear) {
+    return `${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`
+  }
+  return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`
+}
+
 onMounted(async () => {
   loading.value = true
   try {