Drupal 8タイムピッカーで秒を削除または非表示にするにはどうすればよいですか?
タイムスタンプ、日時、日付範囲フィールドのウィジェットは、HTML5入力要素です。時間の場合、これらの形式は秒を含む「H:i:s」である必要があります。 form要素もデフォルトでHTML5入力を使用して、カスタムで使用します。
フィールドの場合は、ウィジェットのフォームを変更して「date_time_element」キーの「テキスト」フィールドを変更し、「#date_time_format」キーを目的の形式に更新する必要があります。次に、送信された値を更新して秒を00に設定する必要がある場合があります。これは、秒の現在の値がデフォルトになると私は考えているためです。
フォーム要素の場合は、「#date_time_element」に「text」要素を使用し、必要な形式を選択するだけです。
私は この記事 で推奨されていることを行うことでこれを達成しました。
モジュールがglue.module
、 これを行う:
/**
* Implements hook_element_info_alter().
*/
function glue_element_info_alter(array &$types) {
$types['datetime']['#process'][] = 'glue_datetime_set_format';
}
/**
* Element process callback for datetime fields.
*/
function glue_datetime_set_format($element) {
// Remove seconds in browsers that support HTML5 type=date.
$element['time']['#attributes']['step'] = 60;
return $element;
}
フォームフィールドの場合、step属性を0に設定します。
function THEME_preprocess_input(&$variables) {
if ($variables['theme_hook_original'] == 'input__date' && $variables['attributes']['type'] == 'time') {
$variables['attributes']['step'] = 0;
}
}