From ab14eb9c30126f7df0bc7f3a443dc0416c33d247 Mon Sep 17 00:00:00 2001 From: fish Date: Sat, 4 Jul 2026 11:58:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9C=8B=E6=9D=BF=E4=B8=8A?= =?UTF-8?q?=E6=AC=A1=E5=90=8C=E6=AD=A5=E6=97=B6=E9=97=B4=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=20Invalid=20Date?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/services/stock_sync.go | 5 ++++- frontend/src/components/StockOverview.tsx | 11 ++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/backend/internal/services/stock_sync.go b/backend/internal/services/stock_sync.go index 7e9ad23..b522922 100644 --- a/backend/internal/services/stock_sync.go +++ b/backend/internal/services/stock_sync.go @@ -147,7 +147,10 @@ func (s *StockSyncService) doSync(ctx context.Context) (int, error) { func (s *StockSyncService) LatestJob(ctx context.Context) (*models.StockSyncJob, error) { var job models.StockSyncJob - if err := s.db.WithContext(ctx).Order("started_at DESC").First(&job).Error; err != nil { + if err := s.db.WithContext(ctx). + Where("started_at > ?", time.Time{}). + Order("started_at DESC"). + First(&job).Error; err != nil { if err == gorm.ErrRecordNotFound { return nil, nil } diff --git a/frontend/src/components/StockOverview.tsx b/frontend/src/components/StockOverview.tsx index b2c6561..c1dde35 100644 --- a/frontend/src/components/StockOverview.tsx +++ b/frontend/src/components/StockOverview.tsx @@ -233,9 +233,14 @@ function StockList({ function formatSyncStatus(job: SyncJob): string { if (job.status === 'running') return '同步中…' - const timeStr = job.finished_at - ? new Date(job.finished_at).toLocaleString() - : new Date(job.started_at).toLocaleString() + const ts = job.finished_at || job.started_at + let timeStr = '时间未知' + if (ts && ts !== '0001-01-01T00:00:00Z') { + const d = new Date(ts) + if (!isNaN(d.getTime())) { + timeStr = d.toLocaleString() + } + } const statusText = job.status === 'success' ? '成功' : '失败' return `${statusText} · ${timeStr}` }