在 CakePHP 中添加日期 (2.6.x)

Add days to date in CakePHP (2.6.x)

如何在 CakePHP (2.6.x) 中轻松地为日期添加一天?如果没有helper或者plugin,怎么用代码实现呢?

我试过了,但是 CakePHP 不知道 add-方法:

$date = $this->request->data['Bill']['date']->add(new DateInterval('P1D'));

你很接近,但你不能只是 add() 那样,因为数据数组中的日期还不是 DateTime 对象,它只是一个普通字符串。如果你先这样投它,它会工作得很好。所以:

// Create a DateTime object from the date in the data array
$date = new DateTime($this->request->data['Bill']['date']);

或者如果您有 day/month/year 个下拉菜单而不是文本输入字段:

$date = new DateTime(implode('-', array(
    $this->request->data['Bill']['date']['year'],
    $this->request->data['Bill']['date']['month'],
    $this->request->data['Bill']['date']['day']
)));

然后你有一个 DateTime 对象,你可以向它添加一天:

// Add a day to this object
$date->add(new DateInterval('P1D');

如果您随后希望这个新日期覆盖旧日期,您可以执行类似这样的操作来保存新日期:

$this->request->data['Bill']['date'] = $date->format('Y-m-d');