diff --git a/frontend/admin/src/pages/MediaPage.vue b/frontend/admin/src/pages/MediaPage.vue index ca839a2..25db690 100644 --- a/frontend/admin/src/pages/MediaPage.vue +++ b/frontend/admin/src/pages/MediaPage.vue @@ -1,5 +1,8 @@ @@ -191,7 +203,14 @@ const formatFileSize = (bytes) => { - + + + + 更新: {{ formatDate(data.updated_at) }} + 上传: {{ formatDate(data.created_at) }} + + + diff --git a/frontend/admin/src/pages/OrderPage.vue b/frontend/admin/src/pages/OrderPage.vue index 48c5c8d..7a36554 100644 --- a/frontend/admin/src/pages/OrderPage.vue +++ b/frontend/admin/src/pages/OrderPage.vue @@ -179,7 +179,7 @@ onMounted(() => { 优惠: -¥{{ formatPrice(getDiscountAmount(data.price, data.discount)) }} 实付: ¥{{ formatPrice(getFinalPrice(data.price, data.discount)) - }} + }} diff --git a/frontend/admin/src/pages/PostPage.vue b/frontend/admin/src/pages/PostPage.vue index 6c48232..c331aae 100644 --- a/frontend/admin/src/pages/PostPage.vue +++ b/frontend/admin/src/pages/PostPage.vue @@ -3,6 +3,9 @@ import { postService } from '@/api/postService'; // Assuming you have a postServ import { InputText } from 'primevue'; import Badge from 'primevue/badge'; +import dayjs from 'dayjs'; +import timezone from 'dayjs/plugin/timezone'; +import utc from 'dayjs/plugin/utc'; import Button from 'primevue/button'; import Column from 'primevue/column'; import ConfirmDialog from 'primevue/confirmdialog'; @@ -15,6 +18,10 @@ import { useToast } from 'primevue/usetoast'; import { onMounted, ref } from 'vue'; import { useRouter } from 'vue-router'; +// Configure dayjs +dayjs.extend(utc); +dayjs.extend(timezone); + // Import useRouter for navigation const router = useRouter(); const confirm = useConfirm(); @@ -115,17 +122,8 @@ const confirmDelete = (post) => { }; // Format datetime to YY/MM/DD HH:mm:ss -const formatDateTime = (dateStr) => { - const date = new Date(dateStr); - return date.toLocaleString('zh-CN', { - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit', - hour12: false - }).replace(/\//g, '-'); +const formatDate = (date) => { + return dayjs.tz(date, 'Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss'); }; // Calculate price after discount @@ -153,8 +151,8 @@ const fetchPosts = async () => { status: statusMap[post.status] || '未知', mediaTypes: getMediaTypes(post.assets), price: post.price / 100, - publishedAt: formatDateTime(post.created_at), - editedAt: formatDateTime(post.updated_at), + publishedAt: formatDate(post.created_at), + editedAt: formatDate(post.updated_at), viewCount: post.views, likes: post.likes })); @@ -273,15 +271,12 @@ const formatMediaTypes = (mediaTypes) => { - + - {{ data.publishedAt }} - - - - - - {{ data.editedAt }} + + 更新: {{ formatDate(data.updated_at) }} + 创建: {{ formatDate(data.created_at) }} + diff --git a/frontend/admin/src/pages/UserPage.vue b/frontend/admin/src/pages/UserPage.vue index 3752992..3997ecb 100644 --- a/frontend/admin/src/pages/UserPage.vue +++ b/frontend/admin/src/pages/UserPage.vue @@ -165,15 +165,12 @@ onMounted(() => { - + - {{ formatDate(data.created_at) }} - - - - - - {{ formatDate(data.updated_at) }} + + 更新: {{ formatDate(data.updated_at) }} + 创建: {{ formatDate(data.created_at) }} +