2012-01-17 2 views
1

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

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

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

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

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

+0

Боюсь, я не понимаю проблему. В базе данных есть '0000-00-00 00: 00: 00' даты? И 'date_format' не может отобразить его правильно (это' 0000-00-00' в вашем случае)? Если да, то что такое '1999' в вашем коде? –

+0

, пожалуйста, проигнорируйте 1999 год как-то на старом сервере, показывая 1999 год, теперь он показывает текущий 2011 год, когда он должен показать 0000 – JohnA

+0

Хорошо. Я вижу две большие проблемы в вашем коде. Во-первых, я не думаю, что вы можете использовать модификаторы в '{if}' условии, два, вы не можете вложить '{}' скобки (вы делаете это в своем состоянии, вы открываете один, вы закрываете два). –

ответ

0

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

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

Лучше всего убирать в PHP ваших даты первой помощи

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

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

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