PHP/Wordpress:在升序列表中包括小时和分钟

Posted

技术标签:

【中文标题】PHP/Wordpress:在升序列表中包括小时和分钟【英文标题】:PHP/Wordpress: include hours & minutes in ascending list 【发布时间】:2013-05-07 05:02:55 【问题描述】:

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

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

$now 是这样定义的:

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

根据PHP manual,我尝试将-g 添加到"Y-m-d",但没有成功。

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

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

我大胆猜测,我只需要获取 $now 变量来添加小时和分钟,但我仍在学习 PHP :)

【问题讨论】:

你试过用 date("Y-m-d h:i:s"); ? 【参考方案1】:

正如 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;

【讨论】:

感谢您的回答,Yogesh。然而,在尝试了date(Y-m-d H:i:s"); 和新的timestamp 数据类型之后,它仍然无法正常工作......我不能告诉你更多,只是它不起作用。还有什么想法吗? @TrevanHetzel date 列的数据类型是什么?并显示来自数据库的数据是什么。 这会有帮助吗? t.hetz.co/OngZ据我所知,数据类型是日期... @TrevanHetzel 将其数据类型从 date 更改为 datetimetimestamp。因为date 数据类型只包含日期数据而不包含时间数据。 明白了。好的,如果我这样做并重新安装 WP 插件,我是否必须再次输入所有日期?

以上是关于PHP/Wordpress:在升序列表中包括小时和分钟的主要内容,如果未能解决你的问题,请参考以下文章

PHP Wordpress作者页面在配置文件中包含自定义字段

在 c/c++ 中包括结构和编译

如何在PHP中包括Authtimeout

在调查猴子中包括图像

PHP Wordpress显示子页面和兄弟姐妹的列表,如果有的话

图形界面中包括了事件处理