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

Мне нужна помощь, чтобы изменить формат даты в поле даты в определенном поле даты, как показано ниже, с формата по умолчанию, который является dd/mm/yyy на d-m-Y

$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'),
    );

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

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

Все кажется не работает, любые идеи. Спасибо.


person afro-Nija    schedule 05.01.2018    source источник
comment
Изменить '#date_date_format' => 'dd-mm-yy', тоже '#date_date_format' => 'd-m-Y', ?   -  person IsThisJavascript    schedule 05.01.2018
comment
пробовал это раньше и даже сейчас, похоже, вообще не работает, продолжает возвращаться к умолчанию, может быть, я что-то упускаю.   -  person afro-Nija    schedule 05.01.2018
comment
Вы также изменили data-drupal-date-format?   -  person IsThisJavascript    schedule 05.01.2018
comment
Изменил только #date_date_format первый раз и изменить не получилось, потом изменил #date_date_format и #data-drupal-date-format все равно не работало.   -  person afro-Nija    schedule 05.01.2018
comment
Вы очищали или перестраивали кэш Drupal?   -  person Sébastien Gicquel    schedule 06.01.2018
comment
Я сделал это несколько раз, но безрезультатно.   -  person afro-Nija    schedule 08.01.2018


Ответы (2)


Это сработало для меня, используя 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'),
  ]);
person Vinay Sreedhara    schedule 06.02.2019

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

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

person afro-Nija    schedule 08.01.2018