fix(stats): 页脚时间标签改成「快照时间」,去掉重复的「数据基准日」

原来四行时间里,前两行说的是同一件事:
「数据基准日:2026-10-24」+「计算于:2026-10-24 14:05:22」。
`DataDate` 就是 `UpdatedAt` 的日期部分(同一个 now 格式化出来的),
两行并列只是把同一个值拆成粗/细两种粒度。

而且「计算于」没有主语:读者站在页脚最底部看到它,会当成「整页数据
算到这一刻」,可今日两项恰恰不在这份快照里 —— 命中缓存时
`withToday` 会用更新的读数替换它们,页面上就出现「标注 14:05、
今日提问却是 22:35 的数」。

改成三行:
  快照时间:     2026-10-24 14:05:22
  最后一条提问: ...
  最后一条回答: ...
「快照只含累计数字与图表、今日两项实时」由下面那条 cacheNote 说明,
不塞进标签里(标签越短越好扫)。词条同步:快照时间 / 快照時間 /
Snapshot: / 集計時刻。

顺带删掉 `Overview.DataDate` 字段:模板不用它之后就没有读者了,
留着它会诱使以后的人再拼出「基准日 + 计算于」这种重复行。

无 schema/接口变更,纯展示层。i18n 有词条数量对等测试,四个语言已
一起改;`go build ./...` 与 i18n / stats / template / templates /
route 测试全绿。
This commit is contained in:
tamakyi
2026-10-24 22:39:47 +08:00
parent 219adefc95
commit af39651734
9 changed files with 91 additions and 15 deletions
+3 -2
View File
@@ -65,8 +65,10 @@ type Overview struct {
ReplyBins [6]int64
// 元信息
//
// UpdatedAt 是这份快照的生成时间,只覆盖累计数字与图表;今日两项在缓存命中时
// 会被 withToday 换成更晚的读数,所以它不能当成「整页数据的时间」来展示。
UpdatedAt string
DataDate string
}
// DailyPoint 某一天的提问量。
@@ -300,7 +302,6 @@ func buildOverview(raw *db.SiteAnalytics, now time.Time) *Overview {
HeatmapDays: raw.HeatmapDays,
LengthBins: raw.LengthBins,
ReplyBins: raw.ReplyBins,
DataDate: now.Format("2006-01-02"),
}
if v.Public < 0 {
v.Public = 0