Symfony2和DateTimePicker错误的日期格式?

时间:2014-06-05 09:35:23

标签: php jquery mysql symfony datepicker

我正在尝试使用symfony表单选择日期时间。 这是我的表格:

/**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('formation_date','datetime',array('label' => "Séance le :",
        'widget' => 'single_text',
        'format' => 'dd/MM/yyyy hh:mm',
        'attr' => array('class' => 'date', 'readonly' => 'readonly')
        ))               
    ;
}

我正在使用jquery datetimepicker。 这是我在页面上调整数据的脚本:

<script type="text/javascript">
$(document).ready(function() {
$.datepicker.setDefaults(
    $.extend(
        {'dateFormat':'dd/mm/yy'},
        $.datepicker.regional['fr']
    )
);
$.timepicker.setDefaults(
    $.extend(
        {'timeFormat':'hh:mm:00'}
    )
);
  jQuery('.date').datetimepicker({
    changeYear: true,
    showButtonPanel: true,
    monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
    dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
    dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
    dayNamesMin: ['D','L','M','M','J','V','S'],
    currentText: 'Aujourd\'hui',
    closeText: 'Fermer',
    prevText: 'Précédent',
    nextText: 'Suivant',
    minDate: "y", 
    maxDate: "+10y"
    });
});
</script>

但是数据库中的时间不正确。虽然我发布了字符串'21 / 06/2014 12:00:00'(长度= 19,它在数据库中是00:00:00,在handleRequest之后是我的实体。

    > object(DateTime)[809]
public 'date' => string '2014-06-21 00:00:00' (length=19)
public 'timezone_type' => int 1
public 'timezone' => string '+00:00' (length=6)

我有 DateTime :: __ construct():无法在位置0(2)处解析时间字符串(21/06/2014 12:00:00):意外字符 如果我试着这样做:

$date = new DateTime($request->request->get('intranet_rhbundle_dateformation')["formation_date"]);

所以,我不知道要解决它......

1 个答案:

答案 0 :(得分:2)

对于Failed to parse time string问题,请尝试以下操作:

$date = new DateTime::createFromFormat(
    'd/m/Y H:i:s',
    $request->request->get('intranet_rhbundle_dateformation')["formation_date"]
);

DateTime::createFromFormat()