From c23de38b21bd3957ff97fce08385048698000f70 Mon Sep 17 00:00:00 2001 From: Zichao Lin Date: Tue, 28 Jul 2026 07:29:12 +0800 Subject: [PATCH] fix(dashboard): convert UTC times to Beijing time before today/yesterday delta calculation --- app/routers/web.py | 2 +- app/templates/dashboard.html | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/routers/web.py b/app/routers/web.py index 49c91f3..6ed4f36 100644 --- a/app/routers/web.py +++ b/app/routers/web.py @@ -630,7 +630,7 @@ def dashboard(request: Request, user: User = Depends(get_current_user_web), db: "countries": countries, "recent": recent, "sent_pct": sent_pct, "delivered_pct": delivered_pct, "received_pct": received_pct, "sent_country_stats": sent_country_stats, "received_country_stats": received_country_stats, - "now": datetime.now(_tz.utc), + "now": datetime.now(_tz.utc) + timedelta(hours=8), }) diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index 9bce907..e2b6d85 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -135,13 +135,16 @@ new Chart(document.getElementById('chart-received'), {
{% if pc.status == 'sent' and pc.send_time %} - {% set delta = (now.date() - pc.send_time.date()).days %} + {% set local_time = pc.send_time|to_local %} + {% set delta = (now.date() - local_time.date()).days %} {% if delta == 0 %}{{ 'dash.today'|t(user.language) }}{% elif delta == 1 %}{{ 'dash.yesterday'|t(user.language) }}{% else %}{{ delta }}{{ 'dash.days_ago'|t(user.language) }}{% endif %} {% elif pc.status == 'delivered' and pc.arrival_time %} - {% set delta = (now.date() - pc.arrival_time.date()).days %} + {% set local_time = pc.arrival_time|to_local %} + {% set delta = (now.date() - local_time.date()).days %} {% if delta == 0 %}{{ 'dash.today'|t(user.language) }}{% elif delta == 1 %}{{ 'dash.yesterday'|t(user.language) }}{% else %}{{ delta }}{{ 'dash.days_ago'|t(user.language) }}{% endif %} {% elif pc.status == 'received' and pc.receive_time %} - {% set delta = (now.date() - pc.receive_time.date()).days %} + {% set local_time = pc.receive_time|to_local %} + {% set delta = (now.date() - local_time.date()).days %} {% if delta == 0 %}{{ 'dash.today'|t(user.language) }}{% elif delta == 1 %}{{ 'dash.yesterday'|t(user.language) }}{% else %}{{ delta }}{{ 'dash.days_ago'|t(user.language) }}{% endif %} {% endif %}