在 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');
如何在 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');