如何修改此查询,以便开始/结束日期按天而不是确切时间


How to modify this query so start/end dates go by days instead of exact times?

我正在使用下面的查询来获取基于使用 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'   => '>'
    )
)

如果你只需要它今天工作,你可以使用:

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

或者

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

mktime()strtotime()的某种组合应该有效。

考虑您的示例:$current_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时间替换为 $date_午夜,您将在今天从昨晚午夜开始的任何时间。