我为视图编写了一个小的字段格式化程序,将原始秒数转换为漂亮的时间,比如 90 秒到 01:30,渲染的输出让我发疯。
问题是 01:30 变成 11:30,而 00:45 变成 10:45 等等......
我的功能是这样的:
function custom_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, &$items, $display) {
$element = array();
$settings = $display['settings'];
switch ($display['type']) {
case 'sectomin':
foreach ($items as $delta => $item) {
$time = intval($item['value']);
$element[$delta] = gmdate('i:s', $time);
// dsm($element);
}
break;
}
return $element;
}
dsm($element) 的输出是正确的:00:45、01:30 等,但在渲染输出中,它变为 10:45、11:30 等。
任何想法可能是什么问题?
编辑:好的,发现问题:
...
foreach ($items as $delta => $item) {
$time = intval($item['value']);
$element[$delta] = gmdate('i:s', $time);
}
...
实际上应该是:
...
foreach ($items as $delta => $item) {
$time = intval($item['value']);
$element[$delta] = array('#markup' => gmdate('i:s', $time));
}
...