PHP EWS - 约会2010年和我的应用程序之间有一个小时的差异

时间:2014-06-17 13:29:01

标签: php timezone exchange-server exchangewebservices

我正在使用github(https://github.com/jamesiarmes/php-ews)的PHP EWS库。

使用CalendarView检索一组日历项目时,将收到时间差为1小时的项目。交换服务器时区设置为“(UTC)Dublin,Edinburgh,Lisbon,London”,并启用夏令时。

通过EWS 2010文档,无法指定我的客户端APP使用CalendarView的时区。

我已经更改了运行我的应用程序的服务器的时区,并尝试了许多其他的事情来尝试获取交换服务器和我的应用程序之间的预约时间无济于事。

有人可以建议如何克服这个问题吗?

非常感谢,

1 个答案:

答案 0 :(得分:1)

您需要在SOAP标头中指定时区和DST转换,例如,对于您提到的特定时区,它将是

    <soap:Header>
  <t:RequestServerVersion Version="Exchange2013" />
  <t:TimeZoneContext>
    <t:TimeZoneDefinition Name="(UTC) Dublin, Edinburgh, Lisbon, London" Id="GMT Standard Time">
      <t:Periods>
        <t:Period Bias="P0DT0H0M0.0S" Name="Standard" Id="Std" />
        <t:Period Bias="-P0DT1H0M0.0S" Name="Daylight" Id="Dlt/1" />
      </t:Periods>
      <t:TransitionsGroups>
        <t:TransitionsGroup Id="0">
          <t:RecurringDayTransition>
            <t:To Kind="Period">Dlt/1</t:To>
            <t:TimeOffset>P0DT1H0M0.0S</t:TimeOffset>
            <t:Month>3</t:Month>
            <t:DayOfWeek>Sunday</t:DayOfWeek>
            <t:Occurrence>-1</t:Occurrence>
          </t:RecurringDayTransition>
          <t:RecurringDayTransition>
            <t:To Kind="Period">Std</t:To>
            <t:TimeOffset>P0DT2H0M0.0S</t:TimeOffset>
            <t:Month>10</t:Month>
            <t:DayOfWeek>Sunday</t:DayOfWeek>
            <t:Occurrence>-1</t:Occurrence>
          </t:RecurringDayTransition>
        </t:TransitionsGroup>
      </t:TransitionsGroups>
      <t:Transitions>
        <t:Transition>
          <t:To Kind="Group">0</t:To>
        </t:Transition>
      </t:Transitions>
    </t:TimeZoneDefinition>
  </t:TimeZoneContext>
</soap:Header>

http://msdn.microsoft.com/en-us/library/ee332363(v=exchg.140).aspx

中记录了这一点

干杯 格伦