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

调用DateTime/DateTimeImmutable的modify()时,空格是否为必填项?

PHP DateTime::modify() 中数字与单位间的空格是否必填?

PHP官方文档里modify()方法的示例代码中,数字和时间单位之间都带有空格,比如:

$date->modify('+1 day');
$date->modify('+1 month');

核心问题

  • 这个空格是否为必填项?
  • 使用+1day和+1 day调用modify()会得到相同结果吗?

测试验证

用以下代码测试:

$now = new DateTimeImmutable();
echo $now->modify('+1day')->format('c');
echo PHP_EOL;
echo $now->modify('+1 day')->format('c');

实际测试结果显示两种写法输出的日期完全一致,说明空格并非必填。

格式定义解析

PHP的DateTime系列函数底层依赖内部的日期时间解析逻辑,它对相对时间格式的解析具备宽松性——不管数字和单位之间是否存在空格,解析器都能准确识别数字和对应的时间单位(如day、month、hour等)。这种设计是为了兼容开发者常见的多种时间字符串书写习惯。

之前官方的「支持的日期和时间格式」页面未明确说明这一细节,但该文档问题现已修复。

开发建议

虽然空格不是必填项,但官方文档采用带空格的写法是为了提升代码可读性和规范性,建议日常开发中遵循这种写法,避免极端场景下可能出现的解析异常。

内容的提问来源于stack exchange,提问作者A.L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:13:13