Smarty date_format не работает на "0000-00-00 00:00" - PullRequest
1 голос
/ 18 января 2012

Дата извлекается из базы данных в переменной «$ request.date» как «0000-00-00 00:00:00», когда отображаемая переменная {$request.date} показывает правильное значение.Но когда я пытаюсь отформатировать его, например, {$request.date|date_format:"%Y-%m-%d"}, вместо этого отображается сегодняшняя дата.

Мне нужно как-то проверить, пуста ли дата базы данных, например, все ли нули и показывает ли она что-то еще

I used to have
{if $request.date|date_format:"%Y"} == "1999"}
Date NOT Set
{else}
Date Set
{/if}

но после переноса на новый сервер я больше не работаю, потому что дата отличается.

Есть ли способ использовать среднюю или левую функцию, чтобы получить год?я попытался {$number|string_format:"%d"}, но он показывает 0, я не уверен, что это время или год.

Ответы [ 2 ]

0 голосов
/ 24 января 2012

Лучше всего сначала очистить ваши даты в PHP, используя

  $timestamp = strtotime($date_string); //where date_string has the format 0000-00-00 ...

. Перед тем, как использовать smarty, вы можете использовать модификатор date_format базе данных, вам придется перебирать возвращаемый контент (если он многомерный) в массиве в PHP и работать с этим индексом "date".Надеюсь, это поможет.

0 голосов
/ 19 января 2012

Почему вы не можете использовать это?

{if $request.date == "0000-00-00 00:00:00"}
    Date NOT Set
{else}
   Date Set to {$request.date|date_format:"%Y-%m-%d"}
{/if}
...