现在,我有一个显示如下的日期:
19\06\2013
我想要的是这个:
19\6\2013
我目前的聪明代码是:
{$variable|date_format:"%e\%m\%Y"}
我尝试使用 %n 这个月(我认为任何适用于 php 的东西都可以在 smarty 中使用),但它没有给我任何结果。
如何在 Smarty 中显示没有前导零的月份?有什么解决方法吗?我不想在我的 php 文件中编辑和格式化日期。
现在,我有一个显示如下的日期:
19\06\2013
我想要的是这个:
19\6\2013
我目前的聪明代码是:
{$variable|date_format:"%e\%m\%Y"}
我尝试使用 %n 这个月(我认为任何适用于 php 的东西都可以在 smarty 中使用),但它没有给我任何结果。
如何在 Smarty 中显示没有前导零的月份?有什么解决方法吗?我不想在我的 php 文件中编辑和格式化日期。
今天我有同样的问题,这对我有用......</p>
该解决方案似乎仅适用于基于 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"}
{$variable|date_format:" jn Y ":"":"任何字符串 - 不是 strftime 或 auto "}
然后你可以像php 函数 date()那样编写日期格式。
smarty_modifier_date_format($string, $format =null, $default_date='', $formatter='auto' )