diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts
index dc93d37c6..eb8fc8cfc 100644
--- a/frontend/src/i18n/locales/en.ts
+++ b/frontend/src/i18n/locales/en.ts
@@ -3071,6 +3071,8 @@ export default {
noActiveSubscriptionsDesc:
"You don't have any active subscriptions. Contact administrator to get one.",
failedToLoad: 'Failed to load subscriptions',
+ today: 'Today',
+ tomorrow: 'Tomorrow',
status: {
active: 'Active',
expired: 'Expired',
diff --git a/frontend/src/i18n/locales/zh.ts b/frontend/src/i18n/locales/zh.ts
index 4b6a9be6e..dfbe52dc7 100644
--- a/frontend/src/i18n/locales/zh.ts
+++ b/frontend/src/i18n/locales/zh.ts
@@ -3219,6 +3219,8 @@ export default {
noActiveSubscriptions: '暂无有效订阅',
noActiveSubscriptionsDesc: '您没有任何有效订阅。请联系管理员获取订阅。',
failedToLoad: '加载订阅失败',
+ today: '今天',
+ tomorrow: '明天',
status: {
active: '有效',
expired: '已过期',
diff --git a/frontend/src/views/admin/SubscriptionsView.vue b/frontend/src/views/admin/SubscriptionsView.vue
index eb2b40d5f..45724ac4f 100644
--- a/frontend/src/views/admin/SubscriptionsView.vue
+++ b/frontend/src/views/admin/SubscriptionsView.vue
@@ -334,7 +334,7 @@
: 'text-gray-700 dark:text-gray-300'
"
>
- {{ formatDateOnly(value) }}
+ {{ formatDateTime(value) }}
{{ getDaysRemaining(value) }} {{ t('admin.subscriptions.daysRemaining') }}
@@ -564,7 +564,7 @@
{{
extendingSubscription.expires_at
- ? formatDateOnly(extendingSubscription.expires_at)
+ ? formatDateTime(extendingSubscription.expires_at)
: t('admin.subscriptions.noExpiration')
}}
@@ -629,7 +629,7 @@ import { adminAPI } from '@/api/admin'
import type { UserSubscription, Group, GroupPlatform, SubscriptionType } from '@/types'
import type { SimpleUser } from '@/api/admin/usage'
import type { Column } from '@/components/common/types'
-import { formatDateOnly } from '@/utils/format'
+import { formatDateTime } from '@/utils/format'
import AppLayout from '@/components/layout/AppLayout.vue'
import TablePageLayout from '@/components/layout/TablePageLayout.vue'
import DataTable from '@/components/common/DataTable.vue'
diff --git a/frontend/src/views/user/SubscriptionsView.vue b/frontend/src/views/user/SubscriptionsView.vue
index 5442c43b3..32f3a21d7 100644
--- a/frontend/src/views/user/SubscriptionsView.vue
+++ b/frontend/src/views/user/SubscriptionsView.vue
@@ -242,7 +242,7 @@ import subscriptionsAPI from '@/api/subscriptions'
import type { UserSubscription } from '@/types'
import AppLayout from '@/components/layout/AppLayout.vue'
import Icon from '@/components/icons/Icon.vue'
-import { formatDateOnly } from '@/utils/format'
+import { formatDateTime } from '@/utils/format'
const { t } = useI18n()
const appStore = useAppStore()
@@ -286,16 +286,16 @@ function formatExpirationDate(expiresAt: string): string {
return t('userSubscriptions.status.expired')
}
- const dateStr = formatDateOnly(expires)
+ const dateTimeStr = formatDateTime(expires)
if (days === 0) {
- return `${dateStr} (Today)`
+ return `${dateTimeStr} (${t('userSubscriptions.today')})`
}
if (days === 1) {
- return `${dateStr} (Tomorrow)`
+ return `${dateTimeStr} (${t('userSubscriptions.tomorrow')})`
}
- return t('userSubscriptions.daysRemaining', { days }) + ` (${dateStr})`
+ return t('userSubscriptions.daysRemaining', { days }) + ` (${dateTimeStr})`
}
function getExpirationClass(expiresAt: string): string {