Php 碳时区和格式不一起工作
这是我的密码Php 碳时区和格式不一起工作,php,php-carbon,Php,Php Carbon,这是我的密码 $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” 显
$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无法使用格式。我错过了什么
我知道可能会有重复的问题,但似乎没有一个解决方案适合我 如果源时间戳始终位于
UTC
时区。
因此,请将代码更改为:
$var=Carbon::createFromFormat('Y-m-dh:i:s',$timestamp,'UTC');
$var=$var->setTimezone('Asia/Dhaka');
您可以这样设置时区
$time='2019-12-16T10:14:35.000000Z';
$var=Carbon::createFromFormat('Y-m-dh:i:s',$time,'Asia/Dhaka');
试试这个:
$var = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Madrid');
$var = $var->setTimezone('Asia/Dhaka');
我试过了。不工作。返回UTC时间,而不是更新的时区。@稻草人更改了答案。试试看:)太好了。现在我知道我错过了什么。