Добавить неделю в умный тпл

  • Выходные данные: 2015-01-20 03:52:19
  • Нужно 20.01.2015 + 1 неделя = 27.01.2015

У меня сейчас есть {$order[orders].invoice_date|date_format:"%d.%m.%Y"}
Но как добавить неделю + 1?

Итак, мне нужно добавить 1 неделю, а затем форматировать это.
Но дата не в формате timestap.

Версия Smarty: 3.1.
Я могу использовать только умную логику, а не PHP.

Как этого добиться?

3 ответа

Решение

Вам не нужен плагин, чтобы решить это. Это может быть решено с помощью комбинации cat а также date_format,

поскольку date_format это обертка для PHP strftime(), вы можете использовать спецификаторы преобразования, доступные в strftime() - и это то, что я использовал для решения этой проблемы.

Попробуй это:

{$order[orders].invoice_date|cat:' +1 week'|date_format:"%d.%m.%Y"}

Я использовал версию Smarty 3.1.17 воссоздать вашу проблему. Решение основано на предположении, что значение в вашей переменной $order[orders].invoice_date это строка 2015-01-20 03:52:19,

Вы можете создать умный плагин, что-то вроде этого, чтобы удовлетворить ваши потребности. http://smarty.incutio.com/?page=AlternativeDateModifierPlugin

Вы не должны делать эту логику в Smarty вообще. Этот тип вещей должен быть сделан в коде php - назначьте два значения даты двум отдельным переменным smarty (одна с добавленной 1 неделей) и используйте соответствующую в соответствующем месте в вашем шаблоне (применяя соответствующий date_format по мере необходимости),

редактировать: я знаю, что вы сказали, что хотите сделать это, используя синтаксис smarty - я просто указываю, что попытка сделать этот тип манипуляции в smarty - это не то, для чего разработан язык шаблонов. Если у вас есть доступ только к умным файлам.tpl, вы можете попробовать использовать тег {php}, чтобы поместить вашу логику php в файл.tpl.

Другие вопросы по тегам