【发布时间】:2012-04-25 10:57:28
【问题描述】:
我为视图编写了一个小型字段格式化程序,将原始秒数转换为漂亮的时间, 大约 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));
}
...
【问题讨论】:
-
不错。你怎么知道它是标记键?
-
我不记得了……但我想是在我将 dsm($element) 的输出与其他一些自定义格式化程序进行比较时。
-
谢谢,会记住这一点
标签: drupal drupal-7 drupal-views