TYPO3 tx_news新增新闻保存后starttime时区变更问题排查
问题原因
你的时间偏移问题是TCA默认值设置不符合TYPO3的inputDateTime字段处理逻辑导致的:
starttime字段的eval配置为datetime,int,说明该字段在数据库中存储的是UTC标准的Unix时间戳- 当前你设置的
'default' => date('Y-m-d H:i:s')返回的是伦敦时区的格式化时间字符串,TYPO3在处理表单提交时,会将这个字符串识别为后端用户所在时区的时间,再次转换为UTC时间戳存储,相当于多执行了一次时区转换,最终出现时间偏移。
解决方案
- 修改TCA的
default配置,直接传入Unix时间戳,不需要使用格式化的时间字符串:
将原有配置行
'default' => date('Y-m-d H:i:s'),
替换为
'default' => time(),
如果需要更符合TYPO3规范的写法,可以使用上下文API获取当前时间戳:
'default' => \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance( \TYPO3\CMS\Core\Context\Context::class )->getPropertyFromAspect('date', 'timestamp'),
- 检查后端用户个人时区配置:登录TYPO3后端,点击右上角头像进入用户设置,在「个人资料」标签下确认时区设置为
Europe/London,避免用户级时区和系统级时区冲突。 - 清理TYPO3系统缓存,新的TCA配置即可生效。
内容的提问来源于stack exchange,提问作者MAZ
相关产品推荐
相关产品推荐

