比较日期到curdate wordpress

时间:2012-01-02 23:56:00

标签: mysql wordpress date

我试图在wordpress中使用过滤器来选择今天的所有帖子:

function filter_where( $where = '' ) {
    $where .= " AND post_date = CURDATE() ";
    return $where;
}

并且无法正常工作,但如果使用< =或> =获取帖子。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

post_date是我认为的DATETIME字段,而不是DATE字段。尝试使用类似AND DATE(post_date) = CURDATE()的内容来比较日期,而不是时间。

编辑:您现在已经意识到您的MySQL服务器时区设置错误。您可以基于每个连接更正此问题。我建议找到Wordpress连接数据库的代码,并在连接后添加这两行代码。您可能需要搜索mysql_connectmysql_select_db才能找到此内容。

$query = "SET time_zone = 'Chile/Santiago'";
mysql_query($query);

完成此操作后,根据我的原始答案,以下代码应该可以正常工作:

function filter_where( $where = '' ) {
    $where .= " AND DATE(post_date) = CURDATE() ";
    return $where;
}

答案 1 :(得分:0)

如果post_date是日期时间或时间戳列,则应使用:

AND post_date >= CURDATE()
AND post_date < CURDATE() + INTERVAL 1 DAY        --- this is needed just in case
                                                --- your table has posts with 
                                                --- future dates (by error)