PHP将日期缩短为零,并添加3天

时间:2017-02-08 20:46:06

标签: php date datetime

我正在寻找一种优雅/高效的方式,以“Y-m-d H:i:s”格式取出日期时间的时间部分,然后再添加3天。

目前的解决方案是:

date('Y-m-d 00:00:00', strtotime("+3 days", strtotime('2017-01-23 05:32:12')));

其中2017-01-23 05:32:12是日期,这正确输出2017-01-26 00:00:00

只是感觉必须有更好的方法来做到这一点。

由于

2 个答案:

答案 0 :(得分:2)

DateTime()提供了几种方法。它们都不比你现在的方法更简洁:

// Plain old DateTime()
$date = (new DateTime('2017-01-23 05:32:12'))->modify('+3 days')->format('Y-m-d 00:00:00');

// DateTme using DateInterval to add three days
$date = (new DateTime('2017-01-23 05:32:12'))->add(new DateInterval('P3D'))->format('Y-m-d 00:00:00');

// DateTime setting the date to midnight instead of using 00:00:00
$date = (new DateTime('2017-01-23 05:32:12'))->modify('+3 days')->modify('midnight')->format('Y-m-d H:i:s');

如果日期是今天,您可以稍微缩短一下:

$date = (new DateTime('+3 days'))->format('Y-m-d 00:00:00');

答案 1 :(得分:1)

您可以使用DateTime

$date = new DateTime('2017-01-23 05:32:12');
$date->modify('+3 days');
$outputDateString = $date->format('Y-m-d 00:00:00');

一行:

$date = ( new DateTime('2017-01-23 05:32:12'))->modify('+3 days')->format('Y-m-d 00:00:00');