如何在 Drupal 7 中创建动态日期格式?
How to create a dynamic date format in Drupal 7?
我必须为我的日期格式添加一个条件,以便在分钟为 00 时不显示 :00。
例如(使用当前格式)
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
谢谢!
我已经使用 field.api.php
中的 hook_field_attach_preprocess_alter 钩子实现了解决方案
我们的应用程序中已经有一个名为 "local" 的模块,我可以将此代码添加到其中。
/**
* 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;
}
}
}
}
我必须为我的日期格式添加一个条件,以便在分钟为 00 时不显示 :00。
例如(使用当前格式)
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
谢谢!
我已经使用 field.api.php
中的 hook_field_attach_preprocess_alter 钩子实现了解决方案我们的应用程序中已经有一个名为 "local" 的模块,我可以将此代码添加到其中。
/**
* 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;
}
}
}
}