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;
date
是mysql
中的保留字,在列名周围使用`
以像列名一样使用它
编辑
试试这个查询
$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
更改为 datetime
或 timestamp
。因为date
数据类型只包含日期数据而不包含时间数据。
明白了。好的,如果我这样做并重新安装 WP 插件,我是否必须再次输入所有日期?以上是关于PHP/Wordpress:在升序列表中包括小时和分钟的主要内容,如果未能解决你的问题,请参考以下文章
PHP Wordpress作者页面在配置文件中包含自定义字段