Symfony Проверка формата DateTimeType с Fractional Second не работает - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть поле DateTime в форме, которую я хочу дать маске формата "гггг-мм-дд'т'хч: мм: сс.SSSXXX", чтобы получить такую ​​дату: "2016-03-23T17: 23 : 40,364 + 01: 00" . Это не работает, symfony возвращает мне ошибку "дата рождения": {"ошибки": ["Это значение недопустимо."]}

Когда я проверяю эту маску "гггг-ММ-дд 'T'HH: mm: ss "со следующей датой" 2016-03-23T17: 23: 40 "работает, но как только я добавляю Fractional Second SSS и зону XXX, он больше не работает.

Я использую следующий код в своем FormType:

use App\Model\Customer;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class CustomerType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('lastname', TextType::class)
            ->add('firstname', TextType::class)
            ->add('birthdate', DateTimeType::class, array(
                'widget' => 'single_text',
                'format' => "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
            ))
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Customer::class,
            'csrf_protection' => false,
        ]);
    }
}

Спасибо за вашу помощь

...