【问题标题】:Drupal Views adding 1 at the beginning of a fieldDrupal 视图在字段开头添加 1
【发布时间】: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


【解决方案1】:

尝试使用自定义格式化程序 - http://drupal.org/project/custom_formatters/ 模块。之后使用 date_parse_from_format("D, m/d/Y - H:i", $custom_date);命令。注意在基于 Windows 的 Web 服务器中,此功能不存在。

【讨论】:

  • 谢谢弗朗西斯,但实际上我已经找到了一个解决方案,我已经在我的问题中发布了
猜你喜欢
  • 2015-01-05
  • 2019-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多