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

PHP中Carbon解析日期时间返回结果与输入不一致该如何修复

问题原因
  • 你返回结果中带Z后缀的时间为UTC标准时间,波哥大时区为UTC-5,你输入的19:33加5小时刚好对应UTC的次日00:33,二者实际是等价的,只是展示时区不同。
  • 原有代码使用strtotime和date函数解析输入时间时,依赖PHP配置的默认时区,如果你输入的日期时间本身就是波哥大当地时间,这一步会引入额外的时区偏差。
修复方案
  • 直接使用Carbon的解析方法指定时区处理输入,跳过strtotime和date的转换步骤,消除默认时区的干扰:
$parsed = Carbon::parse("{$request->date} {$request->start_time}", 'America/Bogota');
  • 如果需要返回波哥大当地时间格式的结果,不要直接返回Carbon对象(框架默认会序列化为UTC格式的ISO时间),手动指定格式返回即可:
// 返回 Y-m-d H:i 格式的当地时间
return $parsed->format('Y-m-d H:i');

// 如需返回带波哥大时区信息的ISO格式
return $parsed->toIso8601String();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:48:02