【问题标题】:Add efficiently 1 month to current date in CakePHP 2.x在 CakePHP 2.x 中有效地将 1 个月添加到当前日期
【发布时间】:2016-03-12 19:38:24
【问题描述】:

在 CakePHP 中添加到期日期的最佳方法是什么?

我的数据库中有一个“到期日期”列,我想在当前日期上添加 1 个月,并存储它。目前,我只是使用字符串和普通的 PHP 日期函数来创建一个新的日期字符串来保存:

$date = date("Y-m-d");
$date = strtotime(date("Y-m-d", strtotime($date)) . " +31 days");
$this->data['Access']['expires'] = $date;

是否有“更多 CakePHP”方式或高效/性能方面的方法?

【问题讨论】:

    标签: cakephp cakephp-2.3


    【解决方案1】:

    在性能方面,我们最有可能谈论的是微优化,因此这可能不是您主要关心的问题。但是,您在那里做的所有来回都没有多大意义,只需调用strtotime() 即可,即

    $this->data['Access']['expires'] = strtotime('+31 days');
    

    这将产生“现在 + 31 天”的时间戳。

    Cake 式的方式是使用 CakeTime 类,例如 CakeTime::fromString(),就像

    App::uses('CakeTime', 'Utility');
    
    $this->data['Access']['expires'] = CakeTime::fromString('+31 days');
    

    当传递一个字符串时(它也接受整数和\DateTime 实例),这基本上只是strtotime() 的一个包装器,以及一个包含为您的应用程序设置的时区的附加机制,所以虽然这会有点当然慢一点,使用它可能仍然是明智的。

    另见

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 2012-05-22
      • 2012-03-29
      • 2011-09-01
      • 2013-07-14
      • 1970-01-01
      相关资源
      最近更新 更多