我已经设置了一个小的测试查询,以便从10月1日到10月10日获得一些帖子。我今天(10月10日)发布了一篇帖子,日期查询参数为include
如果设置为true,我希望这篇文章会显示在查询结果中。然而,事实并非如此。
如果我将帖子的发布日期改为10月1日,结果中会显示出来。如果我改变inclusive
如果为false,则仍会显示。大体上inclusive
似乎什么都不做。
如果inclusive
答案是不是,有没有其他方法可以确保我从10月1日到10月10日收到所有帖子,包括10月1日和10月10日?
$args = array(
\'date_query\' => array(
array(
\'after\' => \'2014-10-01\',
\'before\' => \'2014-10-10\',
\'inclusive\' => true
),
)
);
$posts = get_posts($args);
if( $posts ) {
foreach ($posts as $p) {
echo $p->post_title . \' on \' . $post->post_date . \'<Br>\';
}
} else {
echo \'no posts\';
}
Edited 要补充的是,我刚刚转储了日期查询SQL和where子句
“和((post\\u date>=“2014-10-01 00:00:00”和post\\u date<;=“2014-10-10 00:00:00”))”
所以它实际上根本不包括全天。将值筛选到
“和((post\\u date>=“2014-10-01 00:00:00”和post\\u date<;=“2014-10-10 23:59:59”))”
实际上包括10月10日当天发布的帖子。
最合适的回答,由SO网友:birgire 整理而成
如果你只想和yyyy-mm-dd
例如字符串\'2014-10-10\'
, 您可以这样做:
\'before\' => \'2014-10-10 + 1 day - 1 second\',
\'before\' => \'2014-10-10 + 86399 seconds\',
\'before\' => \'tomorrow 2014-10-10 - 1 second\',
\'before\' => \'2014-10-10 tomorrow - 1 second\',
或
只需附加\'23:59:59\'
到您的yyyy-mm-dd
一串
获取
\'before\' => \'2014-10-10 23:59:59\'