比较Post Meta Wordpress到日期

时间:2017-11-20 09:53:06

标签: php wordpress

我有一个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天的帖子。我真的不知道出了什么问题。

另外,如果有人会帮忙并告诉我如何显示仅剩一小时的帖子,我将不胜感激。

谢谢你们。

1 个答案:

答案 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变量。

希望这会对你有所帮助。