-1

我需要从超过 2 天(工作日)的表中检索所有记录,并返回它已存储的天数。

例如,如果今天是 2013 年 8 月 12 日(星期一),我需要检索 2013 年 8 月 8 日(星期四)及之前的所有记录,其计数应为 2(8 月 10 日和 11 日星期五)。

4

1 回答 1

0

我的模特 :作者

我的数据库字段:创建(类型:日期)

控制器功能

public function index() {

    $authors=array();
    $conditions = array(
        'AND' => array(
        'Author.created !='=>date('Y-m-d'), //to ignore today in count.You can remove this if you want to consider
        'Author.created < NOW() - INTERVAL 2 DAY', // you can change INTERVAL as per your need 
        )
    );
    $authors = $this->Author->find('all', array(
            'conditions' =>$conditions));

    foreach ($authors as $key=>$value)
    {
                $arr[$key]=$value['Author']['created']; 
        $ts1 =strtotime(date('Y-m-d'));
        $ts2 = strtotime($arr[$key]);
        $seconds_diff = $ts1 - $ts2;
            $days[$key]=floor($seconds_diff/3600/24);
    }

        $this->set(compact('authors', 'days'));
   }

index.ctp 文件

<?php 
foreach($authors as $key=>$author): ?>
<h2>Name:<?php echo $author['Author']['name'] ?></h2>
<h2>Since:<?php echo $days[$key]; ?> Days</h2>
<?php endforeach; ?>

希望这会对您有所帮助。如果您有任何问题,请告诉我们。

于 2013-08-13T09:05:20.880 回答