我需要帮助更改特定日期字段上日期字段的日期格式,如下所示,从默认格式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'),
);
我已经尝试了将日期字段添加到表单的推荐方法,如此link
所示我甚至尝试了以下建议,作为对此页面事件的评论的一部分here
一切似乎都不起作用,任何想法。感谢。
答案 0 :(得分:0)
基本上我尝试过很多东西但没有工作,所以我刚刚创建了字段作为textfield并添加了javascript datepicker来实现相同的结果,而不会破坏drupal进程,我能够实现我想要的结果。
基于此,我假设它是drupal 8中的一个错误,直到它被修复,并为开发人员提供了一个更好的解决方法,以便能够指定他们想要的格式。
答案 1 :(得分:0)
这对我有用,通过使用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'),
]);