2

我正在修改另一个开发人员几年前编写的 Wordpress 插件。在 PHP 代码中,他创建了一个$now变量来获取当前时间。然后再往下,我们将显示按升序过滤的内容列表。我遇到的问题是,如果同一天有多个帖子,它不会根据小时和分钟按升序过滤它们;只有一天。

你可以在这里看到我在说什么:http: //alhughesauction.com/upcoming-auctions 前两次拍卖是在同一天,但第二次实际上应该首先显示,因为它是在上午 11 点,另一个是在下午 3 点.

这是如何$now定义的:

$now = "'" . date("Y-m-d", strtotime("now-5hours")) . "'";

根据PHP 手册,我尝试添加-g"Y-m-d",但没有奏效。

这是我们从数据库中获取数据的地方:

$sql = "SELECT * FROM " . AH_DATA . " WHERE date >= {$now} ORDER BY date ASC" . $limit;

我冒昧地猜测我只需要让$now变量添加小时和分钟,但我仍在学习 PHP 的诀窍 :)

4

1 回答 1

0

正如Bhumi所说date("Y-m-d H:i:s");,用于$now

$now = "'" . date("Y-m-d H:i:s", strtotime("now-5hours")) . "'";

列的数据类型也date应该是timestamp,如果不是使用此查询按升序排序

$sql = "SELECT timestamp( `date` ) as 'date', * FROM " . AH_DATA . " 
WHERE `date` >= {$now} ORDER BY 1 ASC" . $limit;

datemysql是在列名周围使用的保留字,`可以像列名一样使用它

编辑

试试这个查询

$sql = "SELECT timestamp(CONCAT(`date`," ",`time` ) as 'date', * FROM " . AH_DATA . " 
WHERE `date` >= {$now} ORDER BY 1 ASC" . $limit;
于 2013-05-07T05:15:43.817 回答