我正在Twig模板系统中将整数转换为时间格式。这样总的持续时间就会转换为hh:mm:ss
。
以下是我如何转换小时数的示例:
{% filter round(0, 'floor') %}{{ agent.TotalCallDuration/3600 }}{% endfilter %}
现在,如果小于10,我必须将前导零添加到小时。我试过:
{% filter round(0, 'floor')|format('%02d') %}{{ agent.TotalCallDuration/3600 }}{% endfilter %}
但没有运气..
答案 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
另一个例子" days"以小时($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
。