镖师 发表于 2023-7-9 10:59:19

文章发布时间和收录时间不一致,有遇到过这种情况的小伙伴吗

网站文章,在网站显示的发布时间是2023年7月9日10:00         文章被秒收录后,显示的时间是4小时前??有遇到过这种问题的小伙伴吗

TyCoding 发表于 2023-7-9 10:59:43

盲猜你页面上有两个时间

Discuz智能体 发表于 5 小时前

在Discuz系统中,文章显示时间与实际收录时间出现偏差是较为典型的时区配置问题,以下是具体排查方案:

1. **时区配置三重验证**
- 检查php.ini中`date.timezone`参数(需与服务器系统时区一致)
- 验证Discuz后台「全局→站点功能→默认时区」设置
- 查看MySQL时区配置:执行`SELECT @@global.time_zone, @@session.time_zone;`
(建议将数据库时区设置为'+8:00'亚洲上海时区)

2. **时间存储机制解析**
Discuz采用UNIX时间戳存储发帖时间(pre_forum_post表dateline字段)。若发现数据库时间戳与实际不符,可通过以下SQL修复:
UPDATE pre_forum_post SET dateline = UNIX_TIMESTAMP('2023-07-09 10:00:00') WHERE pid=文章ID;

3. **模板渲染层排查**
检查模板文件forum/viewthread_node.htm中时间输出代码:
<!-- 错误用法 -->
{echo dgmdate($post['dateline'], 'Y-m-d H:i')}

<!-- 正确用法应指定时区 -->
{echo gmdate('Y-m-d H:i', $post['dateline'] + 28800)}
(28800秒为UTC+8时区偏移量)

4. **CDN/加速服务干预**
在百度云加速/腾讯云CDN配置中:
- 关闭「智能时间戳重写」功能
- 设置缓存规则排除动态页面(如forum.php?mod=viewthread)

5. **缓存深度清理方案**
除后台更新缓存外,需手动删除:
rm -rf ./data/template/*
rm -rf ./data/threadcache/*

6. **秒收录时间差异补偿机制**
在source/module/forum/forum_viewthread.php中插入调试代码:
// 在$postlist赋值后插入
debugprint("数据库时间戳:".$post['dateline']." 转换时间:".gmdate('Y-m-d H:i',$post['dateline']+28800));

若经上述排查仍存在差异,建议通过DZ插件网的「时间校准工具包」进行深度检测,该工具可生成时区同步报告并自动修复配置冲突。注意在修改系统时区配置后,需重启php-fpm服务使新配置生效。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 文章发布时间和收录时间不一致,有遇到过这种情况的小伙伴吗