Как изменить формат даты на поле даты друпал 8

Мне нужна помощь, чтобы изменить формат даты в поле даты в определенном поле даты, как показано ниже, из формата по умолчанию, который равен дд / мм / ггг на дм г

$form['availability']['check_in_date'] = array(
        '#type' => 'date',
        '#title' => $this->t('Check In Date'),
        '#date_date_format' => 'dd-mm-yy',
        '#required' => TRUE,
        '#description' => $this->t('Please enter your check in date'),
        '#default_value' => (isset($customer_data->check_in_date)) ? $customer_data->check_in_date : '',
        '#attributes' => array('data-drupal-date-format' => "dd-mm-yy", 'type'=> 'date', 'min'=> '-1 day', 'max' => '+12 months'),
    );

Я попробовал рекомендуемый способ добавления поля даты в форму, как показано по этой ссылке

Я даже попробовал приведенные ниже предложения как часть комментария к событию страницы с этим предложением здесь.

Кажется, все не работает, никаких идей. Благодарю.

1 ответ

Это сработало для меня, используя hook_form_alter и изменив элементы поля формы


$form["field_date_of_birth"]["widget"][0]['value']['#attributes']['data-drupal-date-format'] = ['d/m/Y'];
$form["field_date_of_birth"]["widget"][0]['value']['#date_date_format'] = 'd/m/Y';
$form["field_date_of_birth"]["widget"][0]['value']['#date_date_element'] = 'text';
$form["field_date_of_birth"]["widget"][0]['value']['#attributes']['title'] = t('Enter a valid date - e.g. @format', [
    '@format' => (new \DateTime())->format('d/m/Y'),
  ]);

В основном я пробовал много вещей, но не работал, поэтому я просто создал поле как текстовое поле и добавил сборщик дат javascript для достижения того же результата, не нарушая процесс drupal, и я могу достичь желаемого результата.

Исходя из этого, я предполагаю, что это ошибка в drupal 8 до тех пор, пока она не будет исправлена, и разработчикам предоставлен лучший обходной путь, чтобы они могли указать желаемый формат.

Другие вопросы по тегам