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

PHP中如何获取几天后的未来日期?日期格式为m-d-Y

PHP实现指定格式的未来日期计算

这事儿用PHP的DateTime类就能轻松搞定,比老派的strtotime靠谱多了,尤其是处理非默认格式的日期时,不容易踩坑。我给你一步步拆解实现方法:

核心思路

  1. 先把你手里的m-d-Y格式日期字符串转换成DateTime对象——毕竟直接操作字符串日期太容易出错了。
  2. 给这个日期对象加上指定的天数(这里是5天)。
  3. 再把处理后的日期对象转回m-d-Y格式的字符串。

代码示例(针对固定当前日期的情况)

假设你的当前日期是04-28-2018,代码如下:

// 给定的当前日期字符串(格式m-d-Y)
$todays_date = '04-28-2018';

// 从指定格式的字符串创建DateTime对象
$date = DateTime::createFromFormat('m-d-Y', $todays_date);

// 添加5天的时间间隔(P5D是ISO 8601标准,P代表周期,5D就是5天)
$date->add(new DateInterval('P5D'));

// 格式化为需要的m-d-Y字符串
$future_date = $date->format('m-d-Y');

// 输出结果:05-03-2018
echo $future_date;

动态获取当前日期的情况

如果你的当前日期不是固定字符串,而是要实时获取当天日期,代码可以简化成这样:

// 直接获取当前日期的DateTime对象
$date = new DateTime();

// 添加5天
$date->add(new DateInterval('P5D'));

// 格式化为m-d-Y
$future_date = $date->format('m-d-Y');

echo $future_date;

关键细节说明

  • DateTime::createFromFormat():这个方法是专门用来处理自定义格式日期的,能精准解析你传入的m-d-Y格式,避免了默认解析可能出现的格式混淆(比如把日和月搞反)。
  • DateInterval:这个类用来定义时间间隔,语法很直观:想要加N天就写P ND,加N个月是P NM,甚至可以组合比如1天2小时就是P1DT2H。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:23:01