time //表
id title time
1 a 2009-3-1 11:07:31
2 b 2009-3-2 11:07:31
3 c 2009-2-28 11:07:31
4 d 2009-3-3 11:07:31
5 e 2009-3-4 11:07:31我查询放到数组中
select * from time怎么样写
才能打印
今天的数值
昨日之前的数值
那明天以后的数值
如果今天是2009-3-1
打印
今天-------------------
1 a 2009-3-1 11:07:31
明天以后-----------------
2 b 2009-3-2 11:07:31
4 d 2009-3-3 11:07:31
5 e 2009-3-4 11:07:31
昨天之前----------------------
3 c 2009-2-28 11:07:31我想做成这样效果查看
怎么样做
谢谢
id title time
1 a 2009-3-1 11:07:31
2 b 2009-3-2 11:07:31
3 c 2009-2-28 11:07:31
4 d 2009-3-3 11:07:31
5 e 2009-3-4 11:07:31我查询放到数组中
select * from time怎么样写
才能打印
今天的数值
昨日之前的数值
那明天以后的数值
如果今天是2009-3-1
打印
今天-------------------
1 a 2009-3-1 11:07:31
明天以后-----------------
2 b 2009-3-2 11:07:31
4 d 2009-3-3 11:07:31
5 e 2009-3-4 11:07:31
昨天之前----------------------
3 c 2009-2-28 11:07:31我想做成这样效果查看
怎么样做
谢谢
$result[$date]["title"]=...
就是把按照日期把结果排序
然后显示就拿当前日期和$date比较,放在昨天以前 今天 明天以后的里边就可以
1. = today
2. > today
3. < today
select * from time by time desc
然后3次判断结果
=今天
大于今天
小于今天
不是非常复杂的,可以用SQL尽量用它,在PHP性能差很多。三次查询。支持7楼的。
$b=array(1=>array('id'=>1,'title'=>'a','time'=>'2009-3-1 11:07:31'),2=>array('id'=>2,'title'=>'b','time'=>'2009-3-2 11:07:31'),
3=>array('id'=>3,'title'=>'c','time'=>'2009-2-28 11:07:31'),4=>array('id'=>4,'title'=>'d','time'=>'2009-3-3 11:07:31'));
$a='2009-3-2';//如果今天是2009-3-2
$aa='2009-3-3';
$a=strtotime($a);
$aa=strtotime($aa);
echo '今天-------------------';
echo '<br>';
foreach ($b as $key=>$value){
if(strtotime($value['time'])<$aa&&strtotime($value['time'])>$a){
echo $value['time'];
echo '<br>';
}
}echo '明天以后-------------------';
echo '<br>';
foreach ($b as $key=>$value){
if(strtotime($value['time'])>$aa){
echo $value['time'];
echo '<br>';
}
}echo '昨天之前-------------------';
echo '<br>';
foreach ($b as $key=>$value){
if(strtotime($value['time'])<$a){
echo $value['time'];
echo '<br>';
}
}
?>你用下这个 测试了 可以用
$sql=mysql_query("select * from time");
$row=mysql_fetch_array($sql);
$dated=date("Y-m-d");
$i=0;
$j=0;
$h=0;
foreach ($row as $key=>$value){
if(DateDiff($value['time'],$dated)==0){
$a[$i]=array('id'=>$value['id'],'title'=>$value['title'],'time'=>$value['time']);
$i+=1;
}
if(DateDiff($value['time'],$dated)<0){
$c[$j]=array('id'=>$value['id'],'title'=>$value['title'],'time'=>$value['time']);
$j+=1;
}
if(DateDiff($value['time'],$dated)>0){
$d[$h]=array('id'=>$value['id'],'title'=>$value['title'],'time'=>$value['time']);
$h+=1;
}
}
if(is_array($a)){
echo '今天-------------------';
echo ' <br>';
foreach ($a as $key=>$value){
echo $value['id']." ".$value['title']." ".$value['time'];
echo ' <br>';
}
}
if(is_array($c)){
echo '明天-------------------';
echo ' <br>';
foreach ($c as $key=>$value){
echo $value['id']." ".$value['title']." ".$value['time'];
echo ' <br>';
}
}
if(is_array($d)){
echo '昨天-------------------';
echo ' <br>';
foreach ($d as $key=>$value){
echo $value['id']." ".$value['title']." ".$value['time'];
echo ' <br>';
}
}
function DateDiff($d1,$d2)
{
//日期比较函数
if(is_string($d1))$d1=strtotime($d1);
if(is_string($d2))$d2=strtotime($d2);
return ($d2-$d1)/43200; //这里返回的是天数,如果除以3600就是返回小时了,依此类推
}
?>
我的意见还是尽量用程序解决,除非数据量大,且设置索引,一般不建议为某一同样需求做3次或多次查询.
select * from time where to_days(time)=to_days(now())
明天
select * from time where to_days(time)=(to_days(now())+1)
其它类似,