我正在使用PHP
和Outlook REST API
,我能够很好地创建事件,除了date
我给API创建事件的时间增加了11个小时end_date
也有问题,例如,如果我告诉API创建从2014-03-31T15:00:00-0000
到2014-03-31T16:00:00-0000
的事件,它最终会创建从2014-04-01T02:00:00+1100
到{{1}的结尾}}
这就是我的API网址
2014-04-01T02:30:00+1100
如果我在结尾删除-0000,我会收到以下错误
https://apis.live.net/v5.0/9898ef90931244e8/events?name=testing_event&description=event_description&start_time=2014-03-31T15:00:00-0000&end_time=2014-03-31T16:00:00-0000&access_token=token-goes-here&method=POST
我会非常感谢任何帮助,因为我花了几个小时试图解决这个问题,而且我几乎完全没有想法......
答案 0 :(得分:1)
尝试在当地时间使用Z,如下所示: 2014-03-31T15:00:00.000Z
所以它会像
https://apis.live.net/v5.0/9898ef90931244e8/events?命名= testing_event&安培;描述= EVENT_DESCRIPTION&安培; START_TIME = 2014-03-31T15:00:00Z&安培; event_start_time = 2014-03-31T16:00:00Z&安培; =的access_token令牌去-此处&安培;方法= POST
答案 1 :(得分:0)
它与不同的时区(-0000和+1100)同时发生。
答案 2 :(得分:0)
前段时间我在MSDN论坛上发布了这个问题并忘了它,今天我访问了这个问题,这是我从Outlook团队解释如何理解UTC时区的reply,我希望这可以帮助某人我遇到了同样的问题,我希望他们把它包含在他们的文档中。这解决了我遇到的问题
*日期的ISO 8601格式可能有点令人困惑。您在回复中看到的内容实际上是正确的。日历服务 记录您的日期并将其映射到用户的时区。
" 2014-03-31T15:00:00-0000"指的是2014年3月31日下午3点 调整0小时0分钟转换为UTC时间。其他 单词,这基本上是IS UTC时间。然后是日历服务 将其转换为您所在用户的本地时区 创建活动。 " 2014-04-01T02:00:00 + 1100"意思是4月1日凌晨2点, 2014年,适用于您的用户所在的任何时区。要翻译回来 UTC,您需要从当地时间减去偏移量。凌晨2点, 2014年4月1日,您的时间映射到UTC时间早11点,即下午3点 2014年3月31日(您输入的内容)。
如果您使用Z,则表示您实际上是在指定 UTC时间。因此,为了获得您需要的活动所需的时间 您想要的时间并找出相应的UTC时间。 因此,如果用户的UTC偏移量为+1100,则需要减去 偏离事件的当地时间来计算UTC 时间。在你的情况下,我相信这将是2014-03-31T04:00:00Z。这个 实际上是最好的代码,而不是尝试 弄清楚如何做自己。如果你看看"创建 日历活动"样本在http://isdk.dev.live.com它会告诉你如何 在JavaScript中执行此操作 - 可能有PHP等价物。*