dsh/meshtastic_mqtt_server:fix/signed-calendar-timezone
main
签到墙(/signed)日历显示的数量与点选某天后列表条数不一致(例如 8/10 日历显示 1 人但列表 2 条、8/15 显示 1 人但列表 0 条)。
/api/signs/daily
DATE_FORMAT(sign_time)
since/until
签到页统一按服务器时区工作:
sign_time
2026-08-15T21:37:59+08:00
00:00 ~ 23:59:59.999
dateRangeForDay
loadCalendar
这样任意浏览器时区下,日历分组与点选筛选使用同一时钟,数量必然一致。偏移量动态推导,服务器时区变更(如切换到 Asia/Shanghai)后无需重新部署前端。
No dependencies set.
The note is not visible to the blocked user.
问题
签到墙(/signed)日历显示的数量与点选某天后列表条数不一致(例如 8/10 日历显示 1 人但列表 2 条、8/15 显示 1 人但列表 0 条)。
根因
/api/signs/daily按服务器本地日期(DATE_FORMAT(sign_time))分组日历;since/until区间,后端再按服务器时区解释;修复
签到页统一按服务器时区工作:
sign_time(如2026-08-15T21:37:59+08:00)动态推导服务器时区偏移;00:00 ~ 23:59:59.999的筛选区间(dateRangeForDay);loadCalendar)。这样任意浏览器时区下,日历分组与点选筛选使用同一时钟,数量必然一致。偏移量动态推导,服务器时区变更(如切换到 Asia/Shanghai)后无需重新部署前端。
验证