我有一个站点,它在sql数据库中存储了一堆记录,我希望根据日期将其拉到页面上,该日期在sql中存储为Y-m-d。但是,我想基于日期对结果进行分页。
因此,对于索引,我想显示当天的所有结果,我将使用php date()函数作为我的QUERY中的WHERE。但是我在分页时遇到了麻烦。我想在底部有一个带有get的下一页的按钮,所以index.php?page = 2将是明天,但我无法弄清楚如何从我的WHERE数据库中可靠地选择“明天”。 / p>
请参阅,我将使用日期(“U”)来获取第一页上第一天的unix时间,然后只需添加3600 * $ _ GET ['page']来增加日期下一页,但这似乎是一种草率的方式,可能会搞砸我。这是唯一的方式,还是有更好,更实用的解决方案 - 非常感谢你们,我很感激。
答案 0 :(得分:1)
如果第2页是明天,那么你将会看到这样的事情:
$days_ahead = $page - 1;
$query = "... WHERE date = DATE(NOW()) + INTERVAL $days_ahead DAY ...";
请注意,这也适用于第一页(假设$ page默认为1),它会在今天的日期添加0天。
答案 1 :(得分:0)
您尝试使用strtotime:
$sqldate = date('Y-m-d', strtotime('+2 days'));
答案 2 :(得分:0)
这就是我设法为我的网站修复它的方法
//'page' is a GET variable from url
if($page<=1) {
$datemax = time();
$datemin = time() - (1 * 2592000); //2592000 being seconds in a month
}
else{
$datemax = time() - (($page - 1) * 2592000);
$datemin = time() - ($page * 2592000);
}
然后显然查询看起来像
SELECT * FROM posts WHERE dateposted >=$datemin AND dateposted <=$datemax