Мне нужна помощь, чтобы изменить формат даты в поле даты в определенном поле даты, как показано ниже, из формата по умолчанию, который дд / мм / ггг на д-м-у
$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'),
);
Я попробовал рекомендуемый способ добавления поля даты в форму, как показано на этом ссылка на сайт
Я даже попробовал приведенные ниже предложения как часть комментария к событию на странице с этим предложением. Вот
Кажется, все не работает, никаких идей. Благодарю.
В основном я пробовал много вещей, но не работал, поэтому я просто создал поле как текстовое поле и добавил сборщик дат javascript, чтобы достичь того же результата, не нарушая процесс drupal, и я могу достичь желаемого результата.
Исходя из этого, я предполагаю, что это ошибка в drupal 8 до тех пор, пока она не будет исправлена, и разработчикам предоставлен лучший обходной путь, чтобы они могли указать желаемый формат.
Это сработало для меня, используя 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'),
]);