You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP时间转换结果与谷歌查询结果不一致,哪个正确?

问题根因

你代码的输出结果是正确的,谷歌结果偏差是搜索逻辑导致的:

  • 2021年美国夏令时时段为3月14日~11月7日,你使用的转换日期2021年11月8日属于太平洋标准时间(PST)时段,洛杉矶时区偏移为UTC-8:
    • UTC时间2021-11-08 18:00:00减8小时,对应洛杉矶当地时间2021-11-08 10:00:00,和你程序输出一致
    • 如果你调用converted_date_time('2021-11-08 04:54:15')得到的结果和预期不符,优先检查你传入的时间是否确实为UTC时间,有没有搞反转换方向
  • 谷歌搜索结果偏差的原因:你搜索时没有指定具体转换日期,搜索引擎默认使用当前时段的时区偏移计算:如果当前处于夏令时(PDT,UTC-7),UTC 18点减7小时得到11点,这个结果仅适用于夏令时时段的转换,不适用于你指定的2021年11月8日的历史日期场景。

代码优化建议

你贴出的代码逻辑没有错误,仅存在两处可以优化的点:

date_default_timezone_set("America/Los_Angeles");
echo date_default_timezone_get();
echo '<br>';

function converted_date_time($dt) {
        $datetime = new DateTime($dt, new DateTimeZone('UTC'));
        // 下方这行format调用没有赋值也没有输出,属于无效代码,可以直接删除
        // $datetime->format('Y-m-d H:i:s');
        $datetime->setTimezone(new DateTimeZone(date_default_timezone_get()));
        // 可以在format中增加O参数输出时区偏移,方便校验结果 例如 return $datetime->format('Y-m-d H:i:s O');
        return $datetime->format('Y-m-d H:i:s');
}

echo converted_date_time('2021-11-08 18:00:00').'<br>';

如果长期使用时区转换功能,建议保持PHP的timezonedb扩展为最新版本,避免过时的时区规则导致计算偏差。

内容的提问来源于stack exchange,提问作者user16357892

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:48:02