Почему значение 0000-00-00 конвертируется в 30/11 / -1 с датой% d /% m /% Y? - PullRequest
2 голосов
/ 05 января 2011

Работая с этим кодом

<?php echo JHTML::Date($field, "%d/%m/%Y");
?>

все конвертируется как шарм, но когда значение установлено на 0000-00-00, моя функция даты конвертирует его в 30/11 / -1.

Мне нужен IF, например:

, если значение = выходной результат 0000-00-00 = эхо "дата недоступна"

Спасибо

Ответы [ 2 ]

3 голосов
/ 05 января 2011

Как указано в документации для JHTML :: Date

Возвращает форматированную дату согласно текущее местное и добавляет смещение времени

Это означает, что при преобразовании даты будет добавлен часовой пояс, что, вероятно, означает, что зоны GMT + приведут к отрицательному году.

Попробуйте настроить параметр смещения для функции.

EDIT:

<?php 
    echo JHTML::Date($field, "%d/%m/%Y", -4); 
    /* The third param represents the timezone offset, set it t your timezone 
       and it should work as expected */
?>
1 голос
/ 05 января 2011

Не зная, как JHTML::Date, никто не может ответить вам

, но вы можете наложить дополнительную проверку, например

if ($field=='0000-00-00' || $field==0)
{
  echo 'no date available';
}
else
{
  echo JHTML::Date($field, "%d/%m/%Y");
}

Подробности на JHTML::Date, которыеиспользуя strftime

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