我想使用 PHP 过滤我的结果,以仅显示今天插入的表中的数据。格式如下:
date
表格中的列daily
格式2013-01-06 17:36:11
。如何使用 PHP 过滤查询以仅显示今天的查询?
WHERE DATE(`date`) = DATE(NOW())
在 sql 查询的 where 子句中做更好的做法。扩展宇智波斑的回答:如果您使用的是 MySQL,您的查询将类似于:
SELECT * FROM daily WHERE DATE(`date`) = DATE(NOW()).
如果出于某种奇怪的原因(我不推荐)必须在 PHP 中执行此操作,则必须循环查询结果并将每个数据库行的日期字段与 PHP 中的今天日期进行比较。
//setup the array our filtered results will go in
$filteredResults = array();
//get the timestamp for 12:00:00am and 11:59:59pm today
$greaterThanThisTime = mktime(0,0,0,date('n'),date('j'),date('Y'));
$lessThanThisTime = mktime(23,59,59,date('n'),date('j'),date('Y'));
//loop the database results
foreach($dbResults as $i=>$row) {
$rowTimeStamp = strtotime($row['date']);
if($rowTimeStamp>=$greaterThanThisTime && $rowTimeStamp<=$lessThanThisTime) {
$filteredResults[] = $row;
}
}
//continue to do whatever you need, using $filteredResults as your results