碳时区和格式不能一起工作

这是我的代码


$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。我在这里想念什么?


我知道可能存在重复问题,但似乎没有一个解决方案对我有用。


慕娘9325324
浏览 118回答 3
3回答

MMMHUHU

如果您的源时间戳始终在UTC时区。所以将您的代码更改为:$var = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'UTC');$var = $var->setTimezone('Asia/Dhaka');

猛跑小猪

您可以像这样设置时区$time = '2019-12-16T10:14:35.000000Z'; $var = Carbon::createFromFormat('Y-m-d H:i:s', $time, 'Asia/Dhaka');

梵蒂冈之花

尝试这个:$var = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Madrid');$var = $var->setTimezone('Asia/Dhaka');
打开App,查看更多内容
随时随地看视频慕课网APP