DateTime :: createFromFormat перестал работать

0

Я использовал этот код для отображения даты и времени продажи билетов на моей веб-странице, но несколько месяцев назад он просто прекратил работу и разбил всю мою страницу. У меня есть дата, которую я выбираю, которая является "onsale". Если сегодня дата до этого, она должна отображать ниже. Есть предположения?

        <?php       

            $date = DateTime::createFromFormat('Ymd', get_field('onsale'));
                echo $date->format('D, M d');
                echo get_field('onsale_time');

            } 
            else { echo get_field( 'price' );
            }
        ?>

Если я удалю

$date = DateTime::createFromFormat('Ymd', get_field('onsale'));
echo $date->format('D, M d');

Он не сломается. Я использую PHP 5.4.24

Вот весь раздел

<?php   $onsale_date = strtotime(get_field('onsale'));
            $now = time();

    if ($onsale_date) { ?>

    <div class="event-ticket-link">

        <div class="cost"> 


        <?php
            if ($onsale_date > $now) {
        ?>  

        On Sale

        <?php       

            $date = DateTime::createFromFormat('Ymd', get_field('onsale'));
                echo $date->format('D, M d');
                echo get_field('onsale_time');

            } 
            else { echo get_field( 'price' );
            }
        ?>

        </div>

        <h4 class="buy-tickets"><a href="<?php the_permalink(); ?>#tickets">Get Tickets</a></h4>

        </div>

        <?php } ?>
Теги:

1 ответ

0

Есть две причины, по которым код мог перестать работать:

  • вход изменился. В вашем случае get_field ('onsale') мог быть изменен. Он должен иметь формат "Ymd": проверьте, что get_field ("onsale") выглядит как YYYYmmdd, например, 20141108 на сегодняшний день
  • изменения конфигурации: возможно, вы обновили PHP, и теперь вам нужно установить локаль перед использованием функций семейства DateTime, возможно, изменился языковой стандарт сервера... (такие вещи могут произойти, особенно с функциями даты: они чувствительны к настройке).
  • 0
    Я использую Wordpress в качестве моей CMS и плагина Custom Fields. Выбор даты, используемый для поля "onsale", является частью этого. Когда я обновил плагин, это перестало работать. Другие настраиваемые поля по-прежнему отображаются нормально, но форматирование DateTime остановлено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню