ビュー用の小さなフィールドフォーマッターを作成して、生の秒数をかなりの時間(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));
}
...