обнаружить большую дату в php - PullRequest
0 голосов
/ 05 февраля 2020

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

2020-02-05 (текущая дата) 2020-01-20 (дата события)

по-прежнему он обнаруживается как более высокая дата для события,

<?php
$loop = new WP_Query( array(
'post_type' => 'events',
'posts_per_page'=> -1,
 )
);
?>

<?php while ( $loop->have_posts() ) : $loop->the_post(); 


                        $today = date("Y-m-d");
                        $date2    = get_field('event_date');




    $event_date = $date2;
    $expire_dt = $today;

    echo '<br>';
    echo $expire_dt;
    echo '<br>';
    echo $event_date;
    echo '<br>';

if ($expire_dt < $event_date) {


                        ?>


<?php 
}else{
echo $today;
    echo $event_date;
    $my_post = array();
    $my_post['ID'] = get_the_ID();
    $my_post['post_status'] = 'draft';

    // Update the post into the database
    wp_update_post( $my_post );

?>

                <?php


}
endwhile; wp_reset_query(); ?>

1 Ответ

2 голосов
/ 05 февраля 2020

Оберните 'event_date' как DateTime -> new \DateTime(get_field('event_date'))

Попробуйте это:

$loop = new WP_Query([
        'post_type' => 'events',
        'posts_per_page' => -1,
    ]
);

while ($loop->have_posts()) {
    $loop->the_post();
    $today = new \DateTime();
    $event_date = new \DateTime(get_field('event_date'));
    // If `get_field()` doesn't work: try `the_field()`...
    // $event_date = new \DateTime(the_field('event_date'));

    if ($today >= $event_date) {
        $my_post = [];
        $my_post['ID'] = get_the_ID();
        $my_post['post_status'] = 'draft';
        wp_update_post($my_post);
    }
}
wp_reset_query();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...