Добавить неделю в умный тпл
- Выходные данные: 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.