Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DST导致+;GCal事件中的1小时时差_Php_Google Calendar Api_Dst_Gcal - Fatal编程技术网

Php DST导致+;GCal事件中的1小时时差

Php DST导致+;GCal事件中的1小时时差,php,google-calendar-api,dst,gcal,Php,Google Calendar Api,Dst,Gcal,我有一个基于php的应用程序,将GCal与OAuth 2.0 API集成在一起。除了DST+1小时的问题外,一切正常。此应用程序仅适用于英国,我还存储用户帐户时区。如果我在凌晨3:00添加任务,GCal会显示凌晨4:00。这就是我在添加任务时在setTimeZone()中将时区硬编码为Europe/London的时候。此外,GCal账户设置也与欧洲/伦敦相同。这有点令人沮丧,所以请帮助我,我应该在我的代码中更改什么来处理这个DST+1小时的时差。代码如下: $evt = new Event();

我有一个基于php的应用程序,将GCal与OAuth 2.0 API集成在一起。除了DST+1小时的问题外,一切正常。此应用程序仅适用于英国,我还存储用户帐户时区。如果我在凌晨3:00添加任务,GCal会显示凌晨4:00。这就是我在添加任务时在setTimeZone()中将时区硬编码为Europe/London的时候。此外,GCal账户设置也与欧洲/伦敦相同。这有点令人沮丧,所以请帮助我,我应该在我的代码中更改什么来处理这个DST+1小时的时差。代码如下:

$evt = new Event();
$evt->setDescription($txtDesc); 
$evt->setSummary($taskTypeTxt);

#--Setting Event Date
$evtDT  = new EventDateTime();
$evtDT2     = new EventDateTime();

$evtDT->setDateTime($startDate); 
$evtDT->setTimeZone('Europe/London');

$evtDT2->setDateTime($endDate);
$evtDT2->setTimeZone('Europe/London');
$evt->setOriginalStartTime($evtDT);
$evt->setStart($evtDT);
$evt->setEnd($evtDT2);

$field = array('items/id');
$evtId = $cal->events->insert($user_email,$evt,$field);

我也有同样的问题


对于是否将时区设置为GMT+0或GMT+1(BST),似乎存在一些模糊性。后者意味着我随后必须手动处理DST更改,但当我设置GMT+0时,它不会在时钟更改时自动更新。

通过在事件日期中添加+1小时来解决此问题,如>>定义(“GCAL_DST”,“01:00”)$startDate=date('Y')。-'。date('m')。-'。date('d')。'T'。date('H'):'日期('i')):00';现在还可以。