现场是这样的。活动页的 Event 标记里 startDate 写 2026-12-01T19:00:00,没有带时区,Google 按 UTC 解析,富媒体显示的时间比实际早了八小时。

中间走过弯路,把「结束时间和开始时间用了不同格式」当成主因,改完现象没变。

真正麻烦的地方在于,几个原因的现象几乎一样。不带时区的日期会被按 UTC 处理;模板直接取了本地时间字符串;测试工具只校验格式,不校验时区。

第一件事是看页面里的日期原值

curl -s https://www.example.com/event/1/ | Select-String startDate

补上东八区偏移

echo date('c', strtotime('2026-12-01 19:00:00'));

起止时间统一格式

echo '<meta itemprop="endDate" content="2026-12-01T22:00:00+08:00">';

剩下的就是用测试工具确认无告警

curl -s "https://search.google.com/test/rich-results?url=https://www.example.com/event/1/" -o /dev/null -w "%{http_code}"

改之前先确认了最近有没有人动过配置,避免白查一遍。

这次没动代码,只在配置和运行环境上找原因。

恢复的判定其实很直接。富媒体里展示的时间与页面一致,测试工具不再提示日期格式问题。

补一句。所有时间字段都带 +08:00,服务器时区改成 UTC 也不会影响输出。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189