Date()与wp_postmeta中的日期之间的比较

时间:2014-11-20 作者:Squazz

我正在使用日历插件:“事件日历”,并试图完成事件。我看不出我做错了什么,但我很确定我的meta_查询在某个地方是错的。

$today = date("Y-m-d") . " 00:00:00";
$args = array(
    \'post_type\'         => \'tribe_events\',
    \'posts_per_page\'    => \'-1\',
    \'meta_key\'          => \'_EventStartDate\',
    \'meta_query\' => array(
        array(
            \'key\'       => \'_EventStartDate\',
            \'value\'     => $today,
            \'compare\'   => \'<\',
            \'type\'      => \'CHAR\',
        ),
    ),
    \'orderby\'           => \'start-date\',
    \'order\'             => \'DESC\',
);
echo $today;
$the_query = new WP_Query($args);
回显日期为2014-11-20 00:00:00,数据库中的日期为2014-11-19 08:00:00。

如果我将参数更改为>、>=或!=我没有收到任何帖子。但如果我使用这些参数中的一个,我会从该参数中得到我所期望的结果。

链接到测试页面:http://beta.musalaha.org/participants/

有人知道我可能做错了什么吗?

1 个回复
最合适的回答,由SO网友:isotrope 整理而成

在meta\\u查询参数中,尝试更改

 \'type\'      => \'CHAR\',

 \'type\'      => \'DATETIME\',
根据您的需要,您可以选择以下任一选项:

类型(字符串)-自定义字段类型。可能的值为“NUMERIC”、“BINARY”、“CHAR”、“DATE”、“DATETIME”、“DECIMAL”、“SIGNED”、“TIME”、“UNSIGNED”。默认值为“CHAR”。

But wait! There\'s more! ;)

事件日历似乎与涉及以下内容的查询挂钩\'post_type\' => \'tribe_events\'!

您需要添加

\'eventDisplay\' => \'past\',

\'eventDisplay\' => \'all\',
你的论点。

..或者,你也可以

$my_past_events = tribe_get_events(
    array(
        \'posts_per_page\'=>999,
        \'eventDisplay\'=>\'past\',
    )
);
并循环浏览$my\\u past\\u事件。

结束