Пользовательские типы записей - meta_query: поиск урока, который начинается раньше

У меня есть пользовательские типы записей уроков, которые имеют 4 подполя даты (среди прочих): period_a_start , period_b_start , period_c_start , period_d_start .

Я хочу создать запрос, чтобы получить 8 первых уроков, которые начинаются раньше (заказываются) (независимо от того, какие период начинается раньше).

Так что если урок A (period_c_start = 13.12.2018), урок B (period_a_start = 20.12.2015), урок C (period_d_start = 14.12.2018) .....

Я хочу, чтобы уроки были упорядочены следующим образом: урок, урок C, урок B ...

Так вот, что я пробовал до сих пор:

$args  = ['post_type'=> 'cp_course', 'numberposts' => 8,'orderby' => 'menuorder', 'order' => 'ASC',         'meta_query' =>            array(                'relation' => 'OR',                array(                    'key' => 'period_a_start',                    'compare' => '>=',                    'type' => 'numeric',                    'value' => date("m/d/Y"),                ),                array(                    'key' => 'period_b_start',                    'compare' => '>=',                    'type' => 'numeric',                    'value' => date("m/d/Y"),                ),                array(                    'key' => 'period_c_start',                    'compare' => '>=',                    'type' => 'numeric',                    'value' => date("m/d/Y"),                ),                array(                    'key' => 'period_d_start',                    'compare' => '>=',                    'type' => 'numeric',                    'value' => date("m/d/Y"),                )            )];$course = get_posts($args);
Но этот подход не гарантирует, что он вернет 8 уроков, которые начнутся раньше, упорядоченные по дате

Ответы и комментарии:

Это должен быть комментарий, а не ответ. Это не сталкивается с проблемой, с которой я сталкиваюсь при заказе уроков. В любом случае, спасибо
Создан 12-12-2018 10:08 dvn22

Мне не хватает представителя. комментировать я могу только оставлять ответы.
Создан 12-12-2018 12:09 Jim

Я бы посоветовал вам хранить время в виде строки вместо формата d-m-Y. Используйте strtotime (), чтобы отформатировать его как длинное целое число. Это поможет вам сравнить строки. Я не уверен на 100%, может ли PHP сравнивать строковые даты. Однако он может сравнивать метки времени, как упомянул и этот пользователь: Как сравнивать даты и строки в PHP
Создан 12-12-2018 08:50 Jim311