在 smarty tpl 中添加周

Add week in smarty tpl

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

所以,我需要加上 1 周,然后再格式化。
但是日期不是时间格式。

Smarty 版本:3.1.
我只能使用聪明的逻辑,而不是 PHP。

如何实现?

您可以创建一个像这样的 smarty 插件来满足您的需要。 http://smarty.incutio.com/?page=AlternativeDateModifierPlugin

你不需要插件来解决这个问题。可以用cat and date_format.

的组合来解决

date_format is a wrapper to PHPs strftime(), you can use the conversion specifiers available in 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.

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

编辑:我知道您曾说过您想使用 smarty 语法来执行此操作 - 我只是指出尝试在 smarty 中执行此类操作并不是模板语言的设计目的。如果您只能访问 smarty .tpl 文件,您可以尝试使用 {php} 标签将您的 php 逻辑放入 .tpl 文件中。