PHP中如何获取几天后的未来日期?日期格式为m-d-Y
PHP实现指定格式的未来日期计算
这事儿用PHP的DateTime类就能轻松搞定,比老派的strtotime靠谱多了,尤其是处理非默认格式的日期时,不容易踩坑。我给你一步步拆解实现方法:
核心思路
- 先把你手里的
m-d-Y格式日期字符串转换成DateTime对象——毕竟直接操作字符串日期太容易出错了。 - 给这个日期对象加上指定的天数(这里是5天)。
- 再把处理后的日期对象转回
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
相关产品推荐
相关产品推荐

