Php 谷歌日历API时间
当我试图从谷歌日历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分钟前(注意:我运行代码
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