2

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

1 に答える 1

0

カスタム フォーマッタ - http://drupal.org/project/custom_formatters/モジュールを使用してみてください。その後、date_parse_from_format("D, m/d/Y - H:i", $custom_date); を使用します。指図。Windows ベースの Web サーバーには、この機能が存在しないことに注意してください。

于 2012-08-10T15:00:38.043 に答える