我为视图编写了一个小字段格式化程序,将原始秒数转换为漂亮的时间, 类似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));
}
...
答案 0 :(得分:0)
尝试使用自定义格式化程序 - http://drupal.org/project/custom_formatters/模块。之后使用date_parse_from_format(“D,m / d / Y - H:i”,$ custom_date);命令。在基于Windows的Web服务器中注意此功能不存在。