我有一个meta_key作为listing_expiry_date及其存储日期(例如2017-11-30 12:25:57)。我相信它的存储日期与数据库中的meta_value字段一样是字符串
现在。我想为一天内到期的帖子获取帖子数组。我开发的代码如下。
$today = date('Y-m-d H:i:s')+1;
$args = array('posts_per_page' => $show,
'post_type' => $type, 'orderby' => $orderby, 'order' => $order, 'paged' => $paged,
'meta_query' => array (
array (
'key' => 'listing_expiry_date',
'orderby' => 'meta_value',
'compare' => '<=',
'value' => $today,
'type'=> 'date'
)
)
);
此代码有时有效,有时我会收到有效期为3天,5天和7天的帖子。我真的不知道出了什么问题。
另外,如果有人会帮忙并告诉我如何显示仅剩一小时的帖子,我将不胜感激。
谢谢你们。
答案 0 :(得分:0)
尝试以下代码:
$one_day_expiry = date('Y-m-d H:i:s', strtotime($date .' +1 day'));
$one_hour_expiry = date('Y-m-d H:i:s', strtotime($date .' +1 hour'));
$args = array(
'posts_per_page' => $show,
'post_type' => $type,
'orderby' => $orderby,
'order' => $order,
'paged' => $paged,
'meta_query' => array (
'relation' => 'AND',
array (
'key' => 'listing_expiry_date',
'compare' => '<=',
'value' => $one_day_expiry,
'type'=> 'date'
)
)
);
你所犯的错误是产生第二天的日期。要使帖子在接下来的一小时内过期,请尝试在元查询中将$one_day_expiry
变量替换为$one_hour_expiry
变量。
希望这会对你有所帮助。