Php 谷歌日历API时间

Php 谷歌日历API时间,php,laravel,google-calendar-api,Php,Laravel,Google Calendar Api,当我试图从谷歌日历api中格式化2015-05-29T19:30:00+08:00 return \Carbon\Carbon::createFromTimeStamp( strtotime('2015-05-29T19:30:00+08:00') ); 我得到了结果2015-05-29 11:30:00 但在我的谷歌日历中,活动的开始日期正好是晚上7:30 一件事是,如果我尝试添加一个->diffForHumans()我得到结果: 16分钟前(注意:我运行代码

当我试图从谷歌日历api中格式化
2015-05-29T19:30:00+08:00

return \Carbon\Carbon::createFromTimeStamp(
        strtotime('2015-05-29T19:30:00+08:00')
        );
我得到了结果
2015-05-29 11:30:00
但在我的谷歌日历中,活动的开始日期正好是晚上7:30 一件事是,如果我尝试添加一个
->diffForHumans()我得到结果:

16分钟前
(注意:我运行代码的时间是晚上7:46)


您能帮我了解一下这里发生了什么吗。

不要将日期时间转换为unix时间戳,而是尝试使用原始日期格式ISO8601直接创建一个日期时间实例,这将自动考虑时区

return Carbon::createFromFormat(Carbon::ISO8601, '2015-05-29T19:30:00+08:00');

看起来完全正确,请阅读更多关于时区的内容(显然您处于+8hs时区,函数返回UTC)是的,谢谢。我已经添加了
->timezone('timezone/Sample')
,并且已经得到了正确的结果。再次感谢@Bokw