You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MS Graph API创建全天事件时Outlook事件延伸至次日问题求助

问题原因排查

  • 未显式开启全天事件标识:MS Graph API 创建全天事件必须在请求体中添加 isAllDay: true 参数,未配置该参数时接口会将事件识别为普通定时事件,即使时间设置为0点到次日0点,也会因时区偏移出现跨天显示异常。
  • 时间格式不符合规范:全天事件的起止时间仅需要传入yyyy-MM-dd格式的日期,不需要携带时分秒。你当前使用date('Y-m-d H:i:s')生成带时分秒的时间参数,会触发接口的时间解析逻辑异常。
  • 时区不匹配:请求中传入的timeZone参数如果和Outlook客户端/账号设置的时区不一致,会导致时间转换偏移,最终显示跨天。

修正方案

将你的代码调整为如下写法即可:

// 显式声明为全天事件
$eventBody['isAllDay'] = true;
// 起止时间仅保留日期部分
$eventBody['start'] = [
    "dateTime" => date('Y-m-d', strtotime($row->day_date)),
    "timeZone" => $timeZone
];
$eventBody['end'] = [
    "dateTime" => date('Y-m-d', strtotime($row->day_date . ' +1 day')),
    "timeZone" => $timeZone
];

调整完成后请确认$timeZone取值和你Outlook账号设置的时区一致,例如中国大陆地区可设置为China Standard Time。

内容的提问来源于stack exchange,提问作者Kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:09:03