首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Php-ews:创建联系人生日活动

Php-ews:创建联系人生日活动
EN

Stack Overflow用户
提问于 2014-06-24 19:19:28
回答 1查看 245关注 0票数 0

我正在尝试使用php-ews和以下代码在Exchange中添加联系人:

代码语言:javascript
复制
$request = new EWSType_CreateItemType();

$request->SendMeetingInvitations = 'SendToNone';

$contact = new EWSType_ContactItemType();
$contact->GivenName = $updates['name'];
$contact->Surname = $updates['surname'];

if($updates['email'] != ""){
    $email = new EWSType_EmailAddressDictionaryEntryType();
    $email->Key = new EWSType_EmailAddressKeyType();
    $email->Key->_ = EWSType_EmailAddressKeyType::EMAIL_ADDRESS_1;
    $email->_ = $updates['email'];

    // set the email
    $contact->EmailAddresses = new EWSType_EmailAddressDictionaryType();
    $contact->EmailAddresses->Entry[] = $email;
}

$contact->CompanyName = $updates['companyname'];

$contact->JobTitle = $updates['jobtitle'];

$contact->Birthday = $updates['birthday'];

$request->Items->Contact[] = $contact;

$response = $this->ews->CreateItem($request);

其中$updates是我作为参数使用的字符串数组。(我跳过了includes,如果需要,请告诉我。)

现在,联系人已创建,一切正常,但生日事件不会在我的日历中自动创建。

所以,我想知道是否有一种简单的方法来完成这一点,除了明显的(非优雅的)手动创建它的方法。

先谢谢你,里卡多

EN

回答 1

Stack Overflow用户

发布于 2019-09-28 04:53:46

我可以像评论中预期的那样,使用正确格式的DateTime来解决这个问题。

代码语言:javascript
复制
$contact->Birthday = (new DateTime($updates['birthday']))->format(DATE_W3C);

https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/time-zones-and-ews-in-exchange

在dateTime元素的值中指定的时区可以采用三种形式。您可以在XML Schema Part 2: Datatypes Second Edition中阅读所有细节,但套用一下:

通用协调时间(

  • ):由'Z‘指定。例如,2014-06-06T19:00:00.000Z
  • Specific时区:由后跟小时和分钟的'+‘或'-’指定。例如,2014-06-06T19:00:00.000-08:00
  • No时区:通过不存在任何时区来指定。例如,2014-06-06T19:00:00.000
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24385296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档