Php 谷歌日历时区不正确
我将下面的数组发送到谷歌api,用于将事件保存到谷歌日历中,但它显示的时间不正确。 有人能帮我吗Php 谷歌日历时区不正确,php,google-api,google-calendar-api,Php,Google Api,Google Calendar Api,我将下面的数组发送到谷歌api,用于将事件保存到谷歌日历中,但它显示的时间不正确。 有人能帮我吗 Array ( [summary] => XXXXXXXXXXXXXXXXXXXX [location] => XXXXXXXXXXXXXXXXXXX [description] => XXXXXXXXXXXXXXXX [start] => Array ( [dateTime] => 2017-01-25T09:00:00+0000
Array
(
[summary] => XXXXXXXXXXXXXXXXXXXX
[location] => XXXXXXXXXXXXXXXXXXX
[description] => XXXXXXXXXXXXXXXX
[start] => Array
(
[dateTime] => 2017-01-25T09:00:00+0000
[timeZone] => America/Toronto
)
[end] => Array
(
[dateTime] => 2017-01-25T09:30:00+0000
[timeZone] => America/Toronto
)
[attendees] => Array
(
[0] => Array
(
[email] => XXXXXXXXXXXXXXXXXXXXXXXXXXXX
)
[1] => Array
(
[email] => XXXXXXXXXXXXXXXXXXXXXXXXXXXX
)
)
[reminders] => Array
(
[useDefault] =>
[overrides] => Array
(
[0] => Array
(
[method] => email
[minutes] => 1440
)
[1] => Array
(
[method] => popup
[minutes] => 10
)
)
)
我正在发送9:00-9:30的时间来保存一个事件,但它在我的谷歌日历中显示为2017年1月25日4:00-4:30。我正在使用PHP谷歌日历api。
谢谢我想你只能把
2017-01-25T09:00:00
放在没有+0000
的地方。您将使用该属性正确指定时区
你可以在这本书里核对我的答案
我已经使用API explorer对其进行了测试,它工作正常。我想您只能在没有
+0000
的情况下放置2017-01-25T09:00:00
。您将使用该属性正确指定时区
你可以在这本书里核对我的答案
我已经使用API explorer对它进行了测试,它工作正常。dateTime字段指定事件发生的时间点,时区只是在其时区中向用户显示该事件的装饰(除非省略了偏移,否则将考虑时区的偏移)。dateTime字段中的偏移量对时间评估很重要(在您的情况下,您指定了+0000,这意味着“与UTC无偏移”) 您有三种选择:
- 以UTC 2017-01-25T14:00:00+0000(或更好的2017-01-25T14:00:00Z)为单位指定时间
- 使用多伦多偏移指定时间 2017-01-25T09:00:00-0500
- 完全省略偏移2017-01-25T09:00:00
- 以UTC 2017-01-25T14:00:00+0000(或更好的2017-01-25T14:00:00Z)为单位指定时间
- 使用多伦多偏移指定时间 2017-01-25T09:00:00-0500
- 完全省略偏移2017-01-25T09:00:00
2017-01-25T09:30:00-0500
表示多伦多的上午9:30,2017-01-25T09:30:00=1000
表示悉尼的上午9:30。“+0000”指定了时区。如果将其更改为“-0500”,即多伦多的时区,会发生什么情况。或者将其全部删除并使用“时区”语句(哪一个更好,因为这样可以节省夏季时间)?谢谢你的回复@Robbie,是的,它非常适合静态日期。我有这样的东西:“$Start=new DateTime”(date('Y-m-d H:I:s',strottime($date));'Start'=>array('DateTime'=>$Start->format(DateTime::ISO8601),“时区”=>“美国/多伦多”,),`你能帮我用这种格式制作-'05:00'吗?谢谢如果我从发送日期中扣除5小时,它会起作用,但我认为这不是正确的方法。从发送日期中扣除5小时可能只对我的位置有效。有没有办法使其动态化并根据我的位置设置时间?0500是时区。哟你不需要从时间中扣除。2017-01-25T09:30:00-0500
在多伦多是指上午9:30,2017-01-25T09:30:00=1000
在悉尼是指上午9:30。
{
"end": {
"dateTime": "2017-01-25T09:30:00",
"timeZone": "America/Toronto"
},
"start": {
"dateTime": "2017-01-25T09:00:00",
"timeZone": "America/Toronto"
}
}