PHP DateTime相关代码无法正常运行,页面报504错误如何解决?
PHP DateTime实例化失败排查方案及替代写法
- 绝大多数无法初始化DateTime类、触发504超时的问题,都是PHP未配置默认时区导致的,可先在脚本开头加入时区设置代码验证:
date_default_timezone_set('Asia/Shanghai');
替换为你实际使用的时区即可,设置完成后可先测试原new DateTime()代码是否可以正常运行。
替代写法1:函数式风格初始化
和面向对象的new DateTime()逻辑完全等价,底层实现一致:
<?php $start = date_create('2012-07-01'); ?>
如果需要使用不可变日期对象,可使用对应函数:
<?php $start = date_create_immutable('2012-07-01'); ?>
替代写法2:基于时间戳处理
如果DateTime相关功能完全不可用,可先通过时间戳处理日期逻辑:
<?php // 将日期字符串转为时间戳 $startTimestamp = strtotime('2012-07-01'); // 后续日期格式化、计算等操作可基于时间戳实现,例如格式化输出: echo date('Y-m-d H:i:s', $startTimestamp); ?>
内容的提问来源于stack exchange,提问作者Eric Chong
相关产品推荐
相关产品推荐

