列表里每条文章后面都是 2026-11-12 00:00:00 这种格式,时分秒永远是三个零,一屏十条看得眼花,手机上和标题挤在一行。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,格式化时套了完整的 Y-m-d H:i:s,但数据源只有日期,解析出来就是当天零点。也有的是自定义字段存了 date 类型,拼上时间后补的零。
「列表时间格式」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。报错里带路径的,先去看那个路径在不在、权限对不对。
$t = get_the_time('H:i:s');
if ($t === '00:00:00') {
echo esc_html(get_the_date('Y-m-d'));
} else {
echo esc_html(get_the_date('Y-m-d H:i'));
}
同一份配置存在多处的,先确认改的是被加载的那一份。
具体做法是,先确认数据源到底有没有时分秒,没有就只输出日期,别硬拼时间;确实需要时间时判断时分秒是否为零,是零就省略,输出成 11 月 12 日;列表用相对时间更省地方,几天内显示几天前,超过一周再显示日期。
最后用这个标准收尾,列表里不再出现整排 00:00:00,同一天发布的文章只显示日期,排序不受影响。
