如何在今天的cakephp 3中获取今天,7天,1个月和1年的数据?

时间:2015-12-05 05:25:01

标签: cakephp time cakephp-3.0

今天在cakephp 3中如何获取今天,7天,1个月和1年的数据?任何想法?

控制器代码: if($ status == 1){

            $data = $this->Sites->find('all')->where(['user_id' => $uid]);
            $a = $data->toArray();
            $id = $a[0]['id'];
            $this->loadModel('Details');

            $details = $this->Details->find('all')->where(['site_id' => $id]);
            $tmp = $details->toArray();
            print_r($tmp);

        }

查看代码:

                                           Form-> create('Add',(['id'=>'frm'])); ?>                     表格 - >输入('状态',数组(                             'type'=> '选择',                             'id'=> 'mySelect',                             'onchange'=> 'myFunction的()',                             'empty'=> '查看详情',                             'options'=>数组('1'=>'1天','7'=>'7天','30'=>'1个月','365'=>'1年')                            )                         );                     ?>                     

                                                                                                                             

1 个答案:

答案 0 :(得分:2)

要回答您的问题,请使用CakePHP Time classPHP DateTime class

您可以像这样使用时间类:

$now = Time::now();
$details = $this->Details->find('all')->where(['site_id' => $id, 'downtime' => $now]);

以上示例将在当前通话中给出日期和时间。您可以使用Time类实例化一个对象并传入一个字符串:

$today = new Time('today');
$seven_days_ago = new Time('7 days ago');
$one_month_ago = new Time('1 month ago');

或者你可以通过集体诉讼实际做到这一点:

$today = Time::now();
$seven_days_ago = (Time::now())->subDays(7);

要回答您编辑过的问题,您可以根据需要获取,然后将它们传递给查询构建器:

$now = Time::now();
$seven_days_ago = new Time('7 days ago');

$details = $this->Details->find('all')->where(['site_id' => $id, function($exp) use($now, $seven_days_ago) {
    $exp->between('downtime', $seven_days_ago, $now);
}]);