Php 在“之间显示当前Wordpress帖子”;“开始”;及;完";日期自定义字段

Php 在“之间显示当前Wordpress帖子”;“开始”;及;完";日期自定义字段,php,wordpress,events,date,custom-fields,Php,Wordpress,Events,Date,Custom Fields,因此,我试图只显示介于开始日期(st_date)和结束日期(end_date)自定义字段之间的当前事件。目前,这对当前事件根本不起作用 我在Wordpress安装上的当前时间是正确的,因为我的时区(东部)是-5 我试图在我的Wordpress网站上更改日期格式以匹配Y-m-d,但由于即将到来的和以前的事件都出现了,这显然没有帮到我 这是服务器关闭的时间吗?截至目前的12/31,它显示的是一个开始日期为12/30的事件,但不是我创建的开始日期为12/31的事件 这是我目前的代码。有什么需要改变的想

因此,我试图只显示介于开始日期(st_date)和结束日期(end_date)自定义字段之间的当前事件。目前,这对当前事件根本不起作用

我在Wordpress安装上的当前时间是正确的,因为我的时区(东部)是-5

我试图在我的Wordpress网站上更改日期格式以匹配Y-m-d,但由于即将到来的和以前的事件都出现了,这显然没有帮到我

这是服务器关闭的时间吗?截至目前的12/31,它显示的是一个开始日期为12/30的事件,但不是我创建的开始日期为12/31的事件

这是我目前的代码。有什么需要改变的想法吗?谢谢你的帮助

    //FILER FOR SEPARATING UPCOMING, CURRENT AND PAST EVENTS
function event_where($where)
{
    global $wpdb,$wp_query;
    $current_term = $wp_query->get_queried_object();
    if((is_archive() || is_tag()) && ($current_term->taxonomy==CUSTOM_CATEGORY_TYPE1 || $current_term->taxonomy==CUSTOM_TAG_TYPE1))
    {
        if($current_term->taxonomy == CUSTOM_CATEGORY_TYPE1 || $current_term->taxonomy == CUSTOM_TAG_TYPE1)
        {
            if(@$_REQUEST['etype']=='')
            {
                $_REQUEST['etype']='current';
            }
            if(@$_REQUEST['etype']=='current')
            {
                $today = date('Y-m-d G:i:s');
                $where .= "  AND ($wpdb->posts.ID in (select $wpdb->postmeta.post_id from $wpdb->postmeta where $wpdb->postmeta.meta_key='st_date' and date_format($wpdb->postmeta.meta_value,'%Y-%m-%d %G:%i:%s') <='".$today."')) AND ($wpdb->posts.ID in (select $wpdb->postmeta.post_id from $wpdb->postmeta where $wpdb->postmeta.meta_key='end_date' and date_format($wpdb->postmeta.meta_value,'%Y-%m-%d %G:%i:%s') > '".$today."')) ";
            }
            elseif($_REQUEST['etype']=='upcoming')
            {
                $today = date('Y-m-d G:i:s');
                $where .= " AND ($wpdb->posts.ID in (select $wpdb->postmeta.post_id from $wpdb->postmeta where $wpdb->postmeta.meta_key='st_date' and date_format($wpdb->postmeta.meta_value,'%Y-%m-%d %G:%i:%s') >'".$today."' and $wpdb->posts.post_status = 'publish')) ";
            }
            elseif($_REQUEST['etype']=='past')
            {
                $today = date('Y-m-d G:i:s');
                $where .= " AND ($wpdb->posts.ID in (select $wpdb->postmeta.post_id from $wpdb->postmeta where $wpdb->postmeta.meta_key='end_date' and date_format($wpdb->postmeta.meta_value,'%Y-%m-%d %G:%i:%s') < '".$today."')) ";
            }
        }elseif(is_day() || is_month() || is_year())
        {
            $where = str_replace("'post'","'".CUSTOM_POST_TYPE1."'",$where); 
        }
    }
    return $where;
}
//用于分离即将发生、当前和过去事件的文件管理器
函数事件\u where($where)
{
全局$wpdb,$wp_查询;
$current_term=$wp_query->get_queryed_object();
如果((is_archive()| | is_tag())&&($current_term->taxonomy==CUSTOM_CATEGORY_TYPE1 | |$current_term->taxonomy==CUSTOM_tag_TYPE1))
{
if($current_term->taxonomy==CUSTOM_CATEGORY_TYPE1 | |$current_term->taxonomy==CUSTOM_TAG_TYPE1)
{
如果(@$_请求['etype']='')
{
$_请求['etype']=“当前”;
}
如果(@$\u请求['etype']=='current')
{
$today=日期('Y-m-d G:i:s');
$where.=“AND($wpdb->posts.ID in(从$wpdb->postmeta where$wpdb->postmeta.meta日期中选择$wpdb->postmeta.post\u ID)和日期格式($wpdb->postmeta.meta\u值),%Y-%m-%d%G:%i:%s)posts.ID in(从$wpdb->postmeta中选择$wpdb->postmeta.post\u ID,其中$wpdb->postmeta.meta key='end\u日期'和日期格式($wpdb->postETA.meta_值,'%Y-%m-%d%G:%i:%s')>“$today.”);
}
elseif($\u请求['etype']=='coming')
{
$today=日期('Y-m-d G:i:s');
$where.=“和($wpdb->posts.ID in(从$wpdb->postmeta where$wpdb->postmeta.meta_key='st_date'和日期格式中选择$wpdb->postmeta.meta_ID,'%Y-%m-%d%G:%i:%s')>”。“$today.”和$wpdb->posts.post_status='publish')”;
}
elseif($\u请求['etype']=='pass')
{
$today=日期('Y-m-d G:i:s');
$where.=“和($wpdb->posts.ID in(从$wpdb->postmeta where$wpdb->postmeta.meta_key='end_date'中选择$wpdb->postmeta.post_ID)和日期格式($wpdb->postmeta.meta_value,'%Y-%m-%d%G:%i:%s')<“$today.”);
}
}其他(是日、是月、是年)
{
$where=str_replace(“'post'””)。自定义_post_TYPE1.“,$where);
}
}
返回$where;
}

我可以考虑检查以下几点:

如果您担心时区不正确,您可以让MySQL提供日期时间。您可以更改如下语句:

$today = date('Y-m-d G:i:s');
$where = "AND date_format($wpdb->postmeta.meta_value,'%Y-%m-%d %G:%i:%s') <='" . $today . "'))";
$where = "AND date_format($wpdb->postmeta.meta_value,'%Y-%m-%d %G:%i:%s') <= NOW() ))";
$today=date('Y-m-d G:i:s');
$where=“和日期”格式($wpdb->postETA.meta_值,“%Y-%m-%d%G:%i:%s”)postETA.meta_值,“%Y-%m-%d%G:%i:%s”)