在smarty tpl中添加一周

时间:2015-03-14 09:03:45

标签: date smarty smarty3

  • 输出:2015-01-20 03:52:19
  • 需要01.20.2015 + 1周= 01.27.2015

我确实有{$order[orders].invoice_date|date_format:"%d.%m.%Y"}
但是如何添加周+ 1?

所以,我需要增加1周然后形成这个。
但日期不是时间戳格式。

Smarty版本:3.1。
我只能使用智能逻辑,而不是PHP。

如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

你不需要一个插件来解决这个问题。它可以通过catdate_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

答案 1 :(得分:0)

您可以创建一个智能插件,类似于这个插件,以满足您的需求。 http://smarty.incutio.com/?page=AlternativeDateModifierPlugin

答案 2 :(得分:0)

你根本不应该聪明地做这个逻辑。这种类型的事情应该在PHP代码中完成 - 将两个日期值分配给两个单独的智能变量(一个添加1周),并在模板中的适当位置使用适当的一个(根据需要应用适当的date_format)

编辑:我知道你已经说过要用巧妙的语法来做这件事 - 我只是指出试图在smarty中进行这种类型的操作并不是模板语言的设计目的。如果您只能访问smarty .tpl文件,则可以尝试使用{php}标记将php逻辑放入.tpl文件中。