现在,我的日期显示如下:
19\06\2013
我想要的是:
19\6\2013
我目前的智能代码是:
{$variable|date_format:"%e\%m\%Y"}
我尝试使用%n作为月份(我假设任何适用于php的东西都可以在smarty中运行)但它没有给我任何结果。
如何在Smarty中显示没有前导零的月份?有没有解决方案?我不想在我的php文件中编辑和格式化日期。
答案 0 :(得分:8)
今天我遇到同样的问题,这对我有用......
此解决方案似乎仅适用于基于Windows的服务器(在我的情况下为localhost)。
{$variable|date_format:"%d\%#m\%Y"}
将哈希#
放在字母'm'之前。
我正在使用Smarty v3
我将项目移动到远程服务器(可能是linux)并且哈希标志停止工作。我找到了另一个解决方案,只是在字母'm'之前加上连字符-
:
{$variable|date_format:"%d\%-m\%Y"}
这适用于Linux,但不适用于Windows。
但是因为smarty是一个PHP插件,所以我们可以使用所有的PHP函数。所以这是我发现的另一种解决方案,也许不是那么优雅,但似乎无处不在。
{assign var="dateTime" value=$variable|strtotime}
{*
or shorter:
{$dateTime=$variable|strtotime}
*}
<p>{"j/n/Y"|date:$dateTime}</p>
以上解决方案适用于格式化日,但也没有前导零:
{$variable|date_format:"%-d vs %d vs %#d"}
答案 1 :(得分:0)
{$ variable | date_format:“ j.n.Y ”:“”:“任何字符串 - 不是strftime或auto ”}
然后您可以像php function date()一样编写日期格式。
smarty_modifier_date_format($string, $format=null, $default_date='', $formatter='auto')