1

我有一个站点,它在 sql 数据库中存储了一堆记录,我想根据日期将其拉到页面上,该日期在 sql 中存储为 Ymd。但是,我想根据天对结果进行分页。

所以对于索引,我想显示当天的所有结果,为此我将使用 php date() 函数作为我的查询中的 WHERE。但是我在进行分页时遇到了障碍。我想在底部有一个按钮,可以通过 get 转到下一页,所以 index.php?page=2 将是明天,但我无法弄清楚如何从我的 WHERE 中的数据库中可靠地选择“明天”。

看,我打算使用 date("U") 在第一页上以秒为单位获取 unix 时间,然后添加 3600*$_GET['page'] 以增加下一页上的日期,但这似乎是一种草率的做法,可能会弄乱我。这是唯一的方法还是有更好,更实用的解决方案 - 非常感谢我很感激的人。

4

3 回答 3

1

如果第 2 页是明天,那么您将看到如下内容:

$days_ahead = $page - 1;
$query = "... WHERE date = DATE(NOW()) + INTERVAL $days_ahead DAY ...";

请注意,这在第一页上也可以正常工作(假设 $page 被默认为 1),它会将 0 天添加到今天的日期。

于 2009-02-18T16:07:33.943 回答
0

你用 strtotime 做实验:

$sqldate = date('Y-m-d', strtotime('+2 days'));
于 2009-02-18T16:08:05.627 回答
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
于 2014-05-12T11:22:13.187 回答