我正在寻找一种优雅/高效的方式,以“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
。
只是感觉必须有更好的方法来做到这一点。
由于
答案 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');