2015-05-29 176 views
1

当我尝试从谷歌日历api格式2015-05-29T19:30:00+08:00;谷歌日历API时间

return \Carbon\Carbon::createFromTimeStamp(
     strtotime('2015-05-29T19:30:00+08:00') 
     ); 

我得到的结果2015-05-29 11:30:00 但在我的谷歌日历事件的开始日期正好是07:30PM 的一件事是,如果我尝试添加->diffForHumans();我得到的结果是:

16 minutes ago(注:我运行代码的时间是7:46 PM)

你能帮我理解这里发生了什么吗?

+1

看起来完全正确的,读出的位更多关于时区(显然你在+8小时的时区,并且该函数返回UTC) – Bokw

+0

是的,谢谢。我已经添加了' - > timezone('Timezone/Sample')',我已经得到了正确的结果。再次感谢你@Bokw – solomonculaste

回答

0

取而代之的日期时间转换为UNIX时间戳,尝试直接创建使用原来的日期格式是ISO8601一个DateTime实例,这应该会自动考虑到时区

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