Как я могу легко добавить день к дате в CakePHP (2.6.x)? Если нет помощника или плагина, как это можно сделать с помощью кода?
Я пробовал это, но CakePHP не знает add
-method:
$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']);
Или если у вас есть раскрывающийся список день/месяц/год вместо текстового поля ввода:
$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');
DateTime::__construct() expects parameter 1 to be string, array given
как CakePHP, обрабатывает его какarray
. Любая идея?