Php 如何修改此查询,使开始/结束日期以天为单位,而不是以精确的时间为单位?

Php 如何修改此查询,使开始/结束日期以天为单位,而不是以精确的时间为单位?,php,mysql,wordpress,timestamp,Php,Mysql,Wordpress,Timestamp,我使用下面的查询根据使用UNIX时间戳的开始日期和结束日期获取帖子 目前,只有当开始时间晚于今天时,才会返回结果。例如,如果是下午5:00,而开始日期是下午6:00,则它将不会接收该文件。我希望在今天的任何时间(从午夜午夜到今晚午夜)作为开始日期。 有人能告诉我如何更新我的代码以使其正常工作吗 $current_time等于1305132894,即今天东部时间5:54 'meta_query' => array( array( 'key'

我使用下面的查询根据使用UNIX时间戳的开始日期和结束日期获取帖子

目前,只有当开始时间晚于今天时,才会返回结果。例如,如果是下午5:00,而开始日期是下午6:00,则它将不会接收该文件。我希望在今天的任何时间(从午夜午夜到今晚午夜)作为开始日期。

有人能告诉我如何更新我的代码以使其正常工作吗

$current_time
等于
1305132894
,即今天东部时间5:54

'meta_query'        => array(
    array(
        'key'       => 'start_date',
        'value'     => $current_time,
        'compare'   => '<'
    ),
    array(
        'key'       => 'end_date',
        'value'     => $current_time,
        'compare'   => '>'
    )
)
'meta\u query'=>数组(
排列(
'键'=>'开始日期',
“值”=>$当前时间,
'比较'=>'
)
)

如果您今天只需要它,您可以使用:

$minDate = strtotime('midnight today');
$maxDate = strtotime('midnight tomorrow -1 second');
或者

$minDate = mktime(0,0,0);
$maxDate = mktime(11,59,59);

和的一些组合应该会起作用。

考虑您的示例:
$current\u time=1305132894

这应该回答您的问题:

$date_current = date("Y-m-d",1305132894);  //2011-05-11
$date_midnight = strtotime($date_current . "00:00:00"); //1305061200 that means: 2011-05-11 00:00:00

因此,将$current time(当前时间)替换为$date_midnight(日期)\u midnight(午夜),从昨晚午夜开始,您将有今天的任何时间。

这似乎可行(只要返回当天和00:00:00),但我如何使开始日期知道是今天?例如,由于start_date大于$date_midnight,因此在结果中不会提取它。我没有注意到其他答案。这更符合你的问题。所以他们已经回答说:)好运气这似乎奏效了,不过现在是格林尼治标准时间。如何通过CST将其设置为go?例如,如果我将时间设置为2011年5月12日晚上8:00,它不会拾取今天发生的结果。我如何用格林尼治标准时间的X数字来抵消小时数?最好使用
date\u default\u timezone\u set('America/Chicago')
还可以将时区参数传递给
strotime()
,例如
strotime(“今天午夜GMT-0500”)
strotime(“今天午夜CST”)
strotime(“今天午夜CDT”)