Как изменить этот запрос, чтобы даты начала / окончания указывались по дням, а не по точному времени? - PullRequest
2 голосов
/ 12 мая 2011

Я использую запрос ниже, чтобы получать сообщения на основе дат начала и окончания, которые используют временную метку UNIX.

В настоящее время результаты возвращаются только в том случае, если время начала наступило после сегодняшнего времени.Например, если сейчас 17:00, а начальная дата - 18:00, он не поднимет его.Я хотел бы, чтобы в любое время в течение сегодняшнего дня (с полуночи прошлой ночи до полуночи сегодня вечером) была указана дата начала.

Может кто-нибудь сказать мне, как обновить мой код, чтобы это работало?*$current_time равно 1305132894, что сегодня 5:54 EST.

'meta_query'        => array(
    array(
        'key'       => 'start_date',
        'value'     => $current_time,
        'compare'   => '<'
    ),
    array(
        'key'       => 'end_date',
        'value'     => $current_time,
        'compare'   => '>'
    )
)

Ответы [ 2 ]

5 голосов
/ 12 мая 2011

Если вам нужно только работать на сегодня, вы можете использовать:

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

или альтернативно

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

Должна работать некоторая комбинация mktime() и strtotime().

0 голосов
/ 12 мая 2011

Учитывая ваш пример: $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 time на $ date_midnight, и у вас будет время в течение сегодняшнего дня с полуночи прошлой ночью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...