2017-01-24 10 views
0

Я должен добавить условие в мой формат даты, так что это не дисплей: 00, когда минуты находятся на 00.Как создать динамический формат даты в Drupal 7?

Для примера (с текущим форматом)

Tuesday, January 24, 2017 - 9:15 am 
Tuesday, January 24, 2017 - 9:00 am 

должен показать (что Я ищу)

Tuesday, January 24, 2017 - 9:15 am 
Tuesday, January 24, 2017 - 9 am 

Спасибо!

+0

Возможный дубликат [Как обычай Drupal формат даты можно добавить?] (Http://stackoverflow.com/questions/8375674/how-can-a-custom-drupal-date-format-be- добавлено) – Fky

+0

Спасибо, но нет. Вы не можете динамически настраивать вывод на основе значения ввода с помощью этого метода. –

ответ

0

Я реализовал решение, используя hook_field_attach_preprocess_alter крюк из field.api.php

Мы уже модуль под названием «местный» в нашем приложении, которое я мог бы добавить этот код.

/** 
* Implements hook_field_attach_preprocess_alter 
*/ 
function local_field_attach_preprocess_alter(&$variables, $context) { 
    global $language; 

    foreach ($variables['content'] as $field_name => $field) { 

    // remove minutes formating if at 00 on field type datestamp. 
    if (isset($field['#field_type']) && $field['#field_type'] === 'datestamp') { 
     $tmp_date = $variables['content'][$field_name][0]['#markup']; 

     switch ($language->language) { 
     case 'en': 
      $variables['content'][$field_name][0]['#markup'] = str_replace(':00', '', $tmp_date); 
      break; 

     case 'fr': 
      $variables['content'][$field_name][0]['#markup'] = str_replace('h 00', 'h', $tmp_date); 
      break; 

     default: 
      break; 
     } 
    } 
    } 
}