Эта проблема начинает приводить меня в бешенство, и я не могу найти правильную информацию или документацию по этой проблеме.
Я использую Symfony 4.2.3
У меня естьформа с dateTimeType:
->add(
'startDate',
DateTimeType::class,
[
'widget' => 'single_text',
'input' => 'datetime',
'html5' => false,
'attr' => [
'class' => 'combinedPickerInput',
'placeholder' => date('d/m/y H:i'),
],
'format' => 'd/m/Y H:i',
'date_format' => 'd/m/Y H:i',
'label' => 'form.specialOffer.startDate',
'translation_domain' => 'Default',
'required' => false,
]
)
Когда я отправляю форму, используя AJAX, $ _POST показывает 100 startDate = '24/04/2019 06:24'
Однако, как только я использую функцию getData () в моей формезначение становится объектом DateTime (как и должно быть), но оно неправильно отформатировано
startDate = {
date = 2018-12-24 06:04:00.000000,
timezone_type = 3
timezone = "Europe/Paris"
}
Поле в моей сущности:
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $startDate;
Я также попытался использовать DateType вместоDateTimeType, но это ничего не меняет.
->add(
'endDate',
DateType::class,
[
'widget' => 'single_text',
'html5' => false,
'attr' => [
'class' => 'combinedPickerInput',
'placeholder' => date('d/m/y H:i'),
],
'format' => 'd/m/Y H:i',
'label' => 'form.specialOffer.endDate',
'translation_domain' => 'Default',
'required' => false,
]
)
Результат точно такой же, как и с DateTimeType
При взгляде на класс DateTimeType что-то выглядит немного не так.при настройке формата даты код выглядит следующим образом:
$dateFormat = \is_int($options['date_format']) ? $options['date_format'] : self::DEFAULT_DATE_FORMAT;
, что для меня делает невозможным использование формата date_, который не является целым числом.Однако приведенное ниже сообщение проверки и ошибки, похоже, указывает на то, что на самом деле должна быть возможность передать строку для пользовательского формата даты
if (!\in_array($dateFormat, self::$acceptedFormats, true)) {
throw new InvalidOptionsException('The "date_format" option must be one of the IntlDateFormatter constants (FULL, LONG, MEDIUM, SHORT) or a string representing a custom format.');
}
Я совершенно растерялся, и любая помощь будет принята с благодарностью