获得一周前的datetime

Man*_*olo 3 php datetime

我想获得一周前的日期时间在查询中使用它.所以我做到了:

$date = new DateTime();
$date->sub(new DateInterval('P7D'));
$date = $date->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,这是行不通的.我知道我做错了什么?

Joh*_*nde 14

DateTime::sub()返回一个新的DateTime对象.它根本不会改变原始对象.

$date = new DateTime();
$newdate = $date->sub(new DateInterval('P7D'));
$date = $newdate->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)

演示

如果你想这样做更简单一点:

$date = new DateTime('-1 week');
$date = $date->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)

演示

  • 请记住`$ date-> sub(...)`MODIFIES原始的`$ date`变量.参见[手册](http://php.net/manual/pl/datetime.sub.php). (3认同)