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

如何用DateTime和DateInterval正确获取当前时间加15分钟的时间戳

问题解决与DateInterval参数说明

代码修复

你的代码输出相同时间的核心原因是:DateTime::add()方法会直接修改调用它的原DateTime对象,并且返回的是该对象的引用。这意味着$now和$in_15_m指向的是同一个实例,自然输出完全一致。

修复方式是先克隆原DateTime对象,再对克隆后的实例执行时间添加操作:

$now = new DateTime('now');
// 克隆原对象,避免修改初始时间实例
$in_15_m = clone $now;
$in_15_m->add(new DateInterval('PT15M'));

echo 'Now:' . $now->format('Y-m-d\TH:i:s\Z');
echo PHP_EOL;
echo 'In 15 min: ' . $in_15_m->format('Y-m-d\TH:i:s\Z');

DateInterval参数解析

你使用的PT15M是完全正确的,它遵循ISO 8601时间间隔规范,拆解规则如下:

  • P:固定起始标记,代表"Period(周期)"
  • T:用于分隔日期部分和时间部分,如果间隔只包含时间维度(比如小时、分钟),必须添加这个标记
  • 15M:代表15分钟(注意:M在T后表示分钟;如果在P后直接使用,则代表月份)

常用参数示例:

  • P2D:2天
  • PT3H:3小时
  • P1DT2H30M:1天2小时30分钟
  • P6M:6个月

内容的提问来源于stack exchange,提问作者Álvaro Franz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:50:16