1

symfony 日期时间字段中的默认日期时间格式yyyy-MM-dd HH:mm:ss适用于我的语言环境。这不是很用户友好,所以我想将其更改为长日期格式。我还在页面加载后使用jquery datetimepicker来帮助用户选择正确的日期/时间。

我似乎无法让日期格式匹配并让 symfony 将传回的数据视为有效日期。

表单的控制器代码:

$form = $this->createFormBuilder($auction)
        ->add('endDate', DateTimeType::class, array(
                'view_timezone' => $user->getTimeZone(),
                'widget' => 'single_text',
                'format' => \IntlDateFormatter::FULL
            ))
        ->add('save', SubmitType::class, array('label' => 'Create Auction', 'attr'=> array('class'=>'button primary')))
        ->getForm();

查看日期时间选择器的代码:

$(document).ready(function(){
        $.datetimepicker.setDateFormatter({
            parseDate: function(date, format){
                var d = moment(date, format);
                return d.isValid() ? d.toDate() : false;
            },
            formatDate: function(date, format){
                return moment(date).format(format);
            }
        });
        $("#form_endDate").datetimepicker({
            format: 'dddd, MMMM D, YYYY h:mm:ssa',
            formatDate: 'dddd MMMM D, YYYY',
            formatTime: 'h:mm a'
        });
    });

我还尝试在控制器中使用相同的文本来匹配 datetimepicker 初始化中的格式:

'format' => 'dddd, MMMM D, YYYY h:mm:ssa'

但这无济于事。日志中也没有任何内容,所以我不知道如何排除故障。

如何使这些格式匹配,以便用户输入的输入有效?

4

1 回答 1

0

您在表单生成器中的格式不正确。根据文档:http ://symfony.com/doc/current/reference/forms/types/date.html#format

格式应指定如下:

$builder->add('date_created', DateType::class, array(
    'widget' => 'single_text',
    // this is actually the default format for single_text
    'format' => 'yyyy-MM-dd',
));

您可以在此处查看所有有效格式:http: //userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax

于 2016-08-05T08:56:47.757 回答