2014-11-08 2 views
0

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

 <?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 } ?> 
+0

Какова ценность 'get_field ('onsale')'? – Barmar

+1

Вещи не просто «перестают работать», а в случае PHP, если есть проблемы с функцией, в вашем журнале ошибок сервера будет ошибка или предупреждение. Оставьте какие-либо ошибки в журнале сервера и посмотрите, что вы изменили, когда это «перестало работать» –

+0

Это сборщик дат JQuery, отображающий формат yymmdd. Это один из 141121 –

ответ

0

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

  • вход изменился. В вашем случае get_field ('onsale') мог быть изменен. Он должен иметь формат «Ymd»: проверьте, что get_field ('onsale') выглядит как YYYYmmdd, например. 20141108 для сегодняшней даты
  • изменения конфигурации: возможно, вы обновили PHP, и теперь вам нужно установить языковой стандарт перед использованием семейных функций DateTime, возможно, изменился языковой стандарт сервера ... (такие вещи могут произойти, особенно с функциями даты: они чувствительны к конфигурации).
+0

Я использую Wordpress как мой CMS и плагин Custom Fields. Этот элемент даты, используемый для поля «onsale», является частью этого. Когда я обновил плагин, это перестало работать. Другие настраиваемые поля по-прежнему отображаются очень хорошо, но форматирование DateTime остановлено. –

Смежные вопросы