“未来”7天?未来的数据怎么显示啊。。。你这个问题太模糊了,也没给个数据表结构。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、雅安服务器托管、营销软件、网站建设、平凉网站维护、网站推广。
我猜测是像天气预报里的“未来七天”的概念吧。
还有,这个数据表的时间字段类型是什么?datetime 还是 timestamp?
如果是datetime需要转换一下。
$now=date();//获取当前timestamp
$sevenDaysLater=$now+60*60*24*7;//获取7天后timestamp
$endtime=date("Y-m-d ",$sevenDaysLater).' 24:00:00';//如果字段类型是datetime将7天后timestamp转换为datetime
$endtime=$sevenDaysLater;//如果字段类型是timestamp的话就不用转换
然后在sql里边用where语句,我不知道你的数据表结构所以没法写完全,差不多像这样:
'where endtimeNOW() AND endtime '.$endtime
在PHP里面,使用time函数获得当前的时间(年月日时分秒都有,实际上是从1970 年 1 月 1 日 00:00:00到当前时间的秒数。
那么,要获得7天前的时刻只需要当前时刻减去7天*24小时/天*3600秒/小时即可,也就是time()-7-24*3600。
例子代码:
?php
$t=time();
echo date('Y-m-d H:i:s',$t)."\n";
$t-=7*24*3600;
echo date('Y-m-d H:i:s',$t)."\n";
?
上面的代码显示:
2015-12-17 13:29:59
2015-12-10 13:29:59
如果你只需要到天,不需要时分秒,那么date函数的第一个参数改为'Y-m-d'即可。
先获取当前时间戳,再获取 数据库中时间戳 当前时间戳 - 3 * 24 * 3600
$time = time() - 3 * 24 * 3600; // 数据库中的时间戳大于这个值就是在三天之内
$sql = "SELECT name FROM tableName WHERE passtime $time"; // 查询 name 的值
今天
select * from 表名 where mytime(时间字段名) = mytime(now());
昨天
select * from 表名 where mytime( now( ) ) - mytime( 时间字段名) = 1
7天
select * from 表名 where date_sub(cur(), interval(7 day = date(时间字段名)