在CakePHP中添加到期日期的最佳方法是什么?
我的数据库中有一个“到期日期”列,我想在当前日期添加1个月,然后存储。目前,我只是使用字符串和普通的PHP日期函数来创建一个新的日期字符串来保存:
$date = date("Y-m-d");
$date = strtotime(date("Y-m-d", strtotime($date)) . " +31 days");
$this->data['Access']['expires'] = $date;
是否存在“更多CakePHP”方式或效率/性能明智?
答案 0 :(得分:0)
性能方面,我们最有可能充分讨论微优化问题,因此可能不应该是您的主要关注点。但是,你在那里做的所有来回都没有多大意义,只需拨打strtotime()
就可以了,即
$this->data['Access']['expires'] = strtotime('+31 days');
这将导致时间戳“现在+ 31天”。
Cake-ish方式是使用CakeTime
类,例如CakeTime::fromString()
,如
App::uses('CakeTime', 'Utility');
$this->data['Access']['expires'] = CakeTime::fromString('+31 days');
当传递一个字符串(它也接受整数和\DateTime
个实例)时,这基本上只是strtotime()
的包装器,还有一个附加为你的应用程序设置的时区的附加机制,所以这个当然会慢一点,使用它可能仍然是明智的。
另见