在视图中显示开始和结束日期时如何将“至”更改为“-”?


10

默认情况下,使用视图显示开始日期和结束日期时,它会在两个日期之间添加“至”文本,我想知道什么是将“至”转换为“-”或其他方式的合适方法。

谢谢



当一个人有答案时,其他人应作为重复对象关闭。良好的渔获,@RajeevK
Mołot

@Mołot-这就是为什么我没有将其标记为重复的原因。希望有人对此有所了解并修改了视图数据。我已经在D6中完成了,但是还没有完成,但是非常不同。
RajeevK

Answers:


9

我的答案假设我有一个名为“ field_event_date”的字段,该字段在我的视图中显示为Content:Event Date。

答案#1-使用视图模板

  1. 在视图的高级部分下的其他部分下,打开主题信息

  2. 复制“字段内容:事件日期”的最后一个主题选项的文件名,在我的情况下为“ views-view-field--VIEWMACHINENAME--BLOCKMACHINENAME--field-event-date.tpl.php”

  3. 将以下内容复制到其中:

    <?php
    
    /**
     * @file
     * This template is used to print a single field in a view.
     *
     * It is not actually used in default Views, as this is registered as a theme
     * function which has better performance. For single overrides, the template is
     * perfectly okay.
     *
     * Variables available:
     * - $view: The view object
     * - $field: The field handler object that can process the input
     * - $row: The raw SQL result that can be used
     * - $output: The processed output that will normally be used.
     *
     * When fetching output from the $row, this construct should be used:
     * $data = $row->{$field->field_alias}
     *
     * The above will guarantee that you'll always get the correct data,
     * regardless of any changes in the aliasing that might happen if
     * the view is modified.
     */
    ?>
    
    <?php print date("Y-m-d H:i:s", strtotime($row->field_field_event_date[0]["raw"]["value"])); ?>
     - 
    <?php print date("Y-m-d H:i:s", strtotime($row->field_field_event_date[0]["raw"]["value2"])); ?>

这将输出类似2014-08-09 20:15:00-2014-08-12 20:15:00的内容,使用date()格式string进行格式化

答案2-使用检视栏位

  1. 在字段下,添加内容:事件日期,并将显示设置为“仅起始日期”
  2. 在字段下,添加全局:自定义文本并将文本设置为-
  3. 在字段下,添加内容:事件日期,并将显示设置为“仅结束日期”
  4. 在“字段设置”下,将上面的三个字段设置为“内联”。

根据您选择的格式,这将输出类似于2013年12月1日星期日-12:00-2013年12月1日星期日-12:00的信息。


答案2b:执行相同操作,但从第一个字段的显示中排除开始日期;不要添加全局:自定义文本;然后将替换格式的结束日期字段的结果重写为[field_my_time] - [field_my_time_1]
雨果

4

尽管上面的答案是正确的,但是最好不要在这样的TPL中使用php。Drupal附带了许多精美的API,其中一个是template_preprocess_views_view_fields(如此处所示

在您的template.php中执行以下操作:

function YOURTHEME_preprocess_views_view_fields(&$vars) {
 if($vars['view']->name == 'YOUR_VIEW') {
  if (strpos($vars['fields']['YOUR_FIELD']->content,'to') !== false) {
    $vars['fields']['YOUR_FIELD']->content = str_replace('to','-',$vars['fields']['YOUR_FIELD']->content);
  }
 }
}

2

在日期7.x-2.8及更高版本中,整个“开始日期至结束日期”字符串都是可翻译的。这意味着将“ to”更改为“-”的简单方法是使用String Overrides模块。只需下载并启用该模块,然后访问/ admin / config / regional / stringoverrides。在该页面上,在“原始”下添加“!start-date到!end-date”(不带引号),并在“替换”下添加“!start-date-!end-date”(不带引号)。点击保存。在看到更改之前,您可能还需要刷新站点的缓存。

这种方法的一个好处是它将立即在节点视图上将“ to”更改为“-” 。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.