Twig模板使用过滤器添加前导零

时间:2017-09-13 11:50:24

标签: php twig

我正在Twig模板系统中将整数转换为时间格式。这样总的持续时间就会转换为hh:mm:ss

以下是我如何转换小时数的示例:

{% filter round(0, 'floor') %}{{ agent.TotalCallDuration/3600 }}{% endfilter %}

现在,如果小于10,我必须将前导零添加到小时。我试过:

{% filter round(0, 'floor')|format('%02d') %}{{ agent.TotalCallDuration/3600 }}{% endfilter %}

但没有运气..

1 个答案:

答案 0 :(得分:0)

使用timezone过滤器,false参数设置为{{ agent.TotalCallDuration | date("H:i:s", false) }}

gmdate

对于超过24小时的值

上述解决方案仅在秒数小于86400秒(24小时)时才有效。对于更大的值,我会使用$twig->addFilter(new Twig_Filter('duration', function ($x) { return $x >= 86400 ? gmdate('d:H:i:s', $x - 86400) : gmdate('H:i:s', $x); })); 函数 1 编写一个简单的过滤器,例如:

$twig

其中Twig_Environment{{ agent.TotalCallDuration | duration }} 的实例。

用法:

hh:mm:ss

另一个例子&#34; days&#34;以小时($twig->addFilter(new Twig_Filter('duration', function ($x) { if ($x < 86400) { return gmdate('H:i:s', $x); } $hours = gmdate('G', $x); $days = (gmdate('d', $x) - 1) * 24 + $hours; return $days . gmdate(':i:s', $x); })); )表示:

{{1}}

1 想法取自date