【问题标题】:Smarty format date to HTML5 <time /> specSmarty 将日期格式转换为 HTML5 <time /> 规范
【发布时间】:2011-08-03 08:35:58
【问题描述】:

我几乎就在最后一个时区我需要它

<time datetime="{$row.datetime.value|date_format:"%Y-%m-%dT%H:%M:%S%z"}"></time>
<time datetime="2011-07-11T00:00:00GMT Daylight Time"></time>

我需要通过像这样添加 +01:00 来实现此功能:2011-07-11T00:00:00+01:00 否则当我验证页面时会出现无效日期错误。

Looking at the doc page 没有

【问题讨论】:

  • 您是否打算显示其他时区的时间?你可以在那里硬编码“+01:00”。
  • 现在它只是一个时区,尽管我更喜欢动态地解决这个问题。在 PHP 手册中它说我需要 /z 虽然这对 smarty 不起作用。

标签: php date datetime smarty html


【解决方案1】:

解决方案

<time datetime="{date('c', $row.datetime.value)}"></time>

另类

是的,我知道这是一种非标准的函数调用方式。如果你不喜欢它,你可以写一个 Smarty 插件。

<?php
    function smarty_modifier_standard_time($timestamp) {
        return date("c", $timestamp);
    }
?>

然后将此插件保存为插件目录中的modifier.standard_time.php,然后像这样调用它:

{$row.datetime.value|standard_time}

【讨论】:

  • 这给了我错误:致命错误:Smarty 错误:[在 news.tpl 第 17 行]:语法错误:无法识别的标签:date('c', $row.datetime.value) (Smarty_Compiler. class.php,第 446 行)在 C:\php\includes\smarty\libs\Smarty.class.php 第 1092 行
  • 我尝试创建一个插件,但它无法识别该插件。我认为我正在使用旧版本的 smarty 2
  • 是的,使用 Smarty 2 会出现这个语法错误,但是 Smarty 3 好很多,所以尝试升级。如果你不能/不会:我已经编辑了我的解决方案,它有一个错误,现在我将插件更改为修饰符,现在应该可以工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 2020-07-04
  • 1970-01-01
  • 2018-02-12
  • 2016-12-02
  • 2023-03-30
相关资源
最近更新 更多