fix: Fix time display in dashboard recent trades

- Convert datetime to timestamp in backend dashboard API
- Improve formatTime function to handle ISO 8601 and RFC 2822 formats
This commit is contained in:
Jinyu Xu
2026-01-17 02:25:12 +07:00
parent c5d000e1c9
commit f332cc62cb
2 changed files with 23 additions and 7 deletions
+9 -1
View File
@@ -354,8 +354,16 @@ def summary():
""",
(user_id,)
)
recent_trades = cur.fetchall() or []
recent_trades_raw = cur.fetchall() or []
cur.close()
# Convert datetime to timestamp for frontend compatibility
recent_trades = []
for t in recent_trades_raw:
trade = dict(t)
if trade.get('created_at') and hasattr(trade['created_at'], 'timestamp'):
trade['created_at'] = int(trade['created_at'].timestamp())
recent_trades.append(trade)
# Compute performance statistics
perf_stats = _compute_performance_stats(recent_trades)
+14 -6
View File
@@ -992,12 +992,20 @@ export default {
formatTime (timestamp) {
if (!timestamp) return '-'
try {
const raw = typeof timestamp === 'string' ? parseInt(timestamp, 10) : Number(timestamp)
if (!raw || Number.isNaN(raw)) return '-'
const ms = raw < 1e12 ? raw * 1000 : raw
const d = new Date(ms)
if (isNaN(d.getTime())) return '-'
return d.toLocaleString()
let date
// Handle ISO 8601 date strings (e.g., "2024-01-17T01:58:10.000Z")
if (typeof timestamp === 'string' && timestamp.includes('-') && timestamp.includes(':')) {
date = new Date(timestamp)
} else if (typeof timestamp === 'number' || (typeof timestamp === 'string' && /^\d+$/.test(timestamp))) {
// Handle numeric timestamps (seconds or milliseconds)
const numTimestamp = typeof timestamp === 'string' ? parseInt(timestamp, 10) : timestamp
const ms = numTimestamp < 1e12 ? numTimestamp * 1000 : numTimestamp
date = new Date(ms)
} else {
return '-'
}
if (isNaN(date.getTime())) return '-'
return date.toLocaleString()
} catch (e) {
return '-'
}