Php 使用Smarty在博客条目中定义日期

Php 使用Smarty在博客条目中定义日期,php,smarty,Php,Smarty,出于不同的原因,我希望我的用户能够使用不同的日期格式,而不必使用Smarty附带的日期格式选项 所以我试着如下: 模板 {foreach from=$list_entries item=row_entries} <h1>{$row_entries.title}</h1> <p>{$row_entries.content}</p> {/foreach} 但每个条目的日期都保持不变。 有办法解决这个问题吗?您一直在覆盖和分配相同的全局变量。而是添

出于不同的原因,我希望我的用户能够使用不同的日期格式,而不必使用Smarty附带的日期格式选项

所以我试着如下:

模板

{foreach from=$list_entries item=row_entries}
 <h1>{$row_entries.title}</h1>
 <p>{$row_entries.content}</p>
{/foreach}
但每个条目的日期都保持不变。
有办法解决这个问题吗?

您一直在覆盖和分配相同的全局变量。而是添加一个具有格式化时间的新数组键:

$row_entries["formatted_time"] = date("H:s:i", $row_entries["time"]);
$list_entries[] = $row_entries;
如果愿意,也可以覆盖现有的
时间
键。然后,当您在模板中循环使用
$row\u条目
时,只需输出格式化的时间,无需修改

{ foreach from=$list_entries item=row }
   Time: { $row->formatted_time }
{ /foreach }
您可能有兴趣制作一个自定义修改器,使日期的格式设置更简单(如果您经常使用相同的格式),因此您可以使用如下内容:

{ $myDate | myDateFormat }

顺便说一下,你的意思可能是
H:i:s
。谢谢你提到H:i:s问题。我对使用Smarty很陌生,你能把整个解决方案放在一起让我明白你的意思吗?我尝试了一些变体,但不起作用。谢谢你的建议,我以后一定会考虑的。当然,尽管我想我已经尽可能清楚地说了。把你的全部代码贴到你的问题里,我可以帮你。很抱歉。仍然年轻和愚蠢,但努力。不管怎样,我已经编辑了我的问题。我没有看到
$template\u string
的内容,这是您实际输出此数据的地方。你试过执行我的建议吗?只是不清楚你被困在哪里了。暂时忘记自定义修改器,这更高级。我忘记Smarty语法是
{$row->formatted\u time}
还是
{$row.formatted\u time}
,但请尝试一下。
{ $myDate | myDateFormat }