我需要从超过2天(工作日)的表中检索所有记录,并返回已存储的天数。
例如,如果今天是2013年8月12日(星期一),我需要从2013年8月8日(星期四)及以后查找所有记录,其计数应为2(8月10日和11日星期五)。
答案 0 :(得分: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; ?>
希望这会对你有所帮助。如果你有任何问题,请告诉我们。