本页面软件均来自互联网,如有侵权请联系删除。

PHP5 以后的 DateTime 是一个强大的时间处理物件,许多框架的 Date 组件就是延伸自 DateTime ,因此通常不会特别实作太多时间处理函式在里面,而是让你专注的用原生的 DateTime 来处理时间,现在我来整理一下常用的一些时间日期增减方式。

取得当下时间日期


$date = new DateTime('2018-01-01');
// OR
$date = new DateTime('now');

增加 10 天

DateIntervalDateTime::add()

$date = new DateTime('2018-01-01');
$day = new DateInterval('P10D'); // P 开头代表日期,10D 代表 10 天
$date->add($day);
echo $date->format('Y-m-d') ;

DateTime::modify()

$date = new DateTime('2017-12-12');
$date->modify('+10 day');
echo $date->format('Y-m-d');

减少一个月

$date = new DateTime('2000-12-31');

$date->modify('-1 month');
echo $date->format('Y-m-d') ;

DateInterval 增加两年四天六小时又八分

$date = new DateTime('2018-01-01');
$day = new DateInterval('P2Y4DT6H8M'); // 两年四天六小时又八分,中间的 T 是时间的意思
$date->add($day);
echo $date->format('Y-m-d') ;

DateInterval的写法说明

new DateInterval('P1Y2M3D'); // P 开头表示日期,一年二个月又三天

new DateInterval('PT4H5M6S'); // T 开头表示时间,四小时五分又六秒

new DateInterval('P1Y2M3DT4H5M6S'); // 合并起來,一年二个月三天四小时五分又六秒

new DateInterval('P3M'); // 三个月

new DateInterval('PT1H'); // 一小时