这是我的代码$time = '2019-12-16T10:14:35.000000Z';$var = new Carbon($time);$var = $var->setTimezone('Asia/Dhaka')->format('Y-m-d H:i:s');我期待的回报是' 2019-12-16 4:14:35 '我得到的回报' 2019-12-16 10:14:35 '如果我删除格式功能,我会得到正确的时区' 2019-12-16T4:14:35.000000Z '显然 setTimeZone 不适用于 Format。我在这里想念什么?我知道可能存在重复问题,但似乎没有一个解决方案对我有用。
3 回答

MMMHUHU
TA贡献1834条经验 获得超8个赞
如果您的源时间戳始终在UTC时区。所以将您的代码更改为:
$var = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'UTC');
$var = $var->setTimezone('Asia/Dhaka');

猛跑小猪
TA贡献1858条经验 获得超8个赞
您可以像这样设置时区
$time = '2019-12-16T10:14:35.000000Z';
$var = Carbon::createFromFormat('Y-m-d H:i:s', $time, 'Asia/Dhaka');

梵蒂冈之花
TA贡献1900条经验 获得超5个赞
尝试这个:
$var = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Madrid');
$var = $var->setTimezone('Asia/Dhaka');
- 3 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消