2016-08-04 104 views
1

symfony datetime字段中的默認日期時間格式爲我的語言環境的yyyy-MM-dd HH:mm:ss。這不是非常用戶友好的,所以我想將它改爲長日期格式。我也在頁面加載後使用jquery datetimepicker來協助用戶選擇正確的日期/時間。獲取日期時間格式以與jquery datetimepicker和symfony表單字段匹配

我似乎無法得到日期格式匹配,並讓symfony考慮傳回的數據作爲有效日期。

的形式控制器代碼:

$(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

$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(); 

查看代碼在datetimepicker初始化中:

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

但這並沒有幫助。日誌中沒有任何內容,所以我不知道如何排除故障。

如何獲得這些格式匹配,以便用戶輸入的輸入有效?

回答

0

您的格式在formbuilder中是不正確的。 按照文檔: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

+0

其實你所提供的鏈接是否確實提到,我應該可以使用\ IntlDateFormatter常量。 –

+0

哦,是的,沒有注意到。我的錯。 輸入中顯示的初始日期是否與datetimepicker生成的日期格式相同?您也可以在提交到您的控制器之前檢查發佈的數據,以確保它具有正確的日期格式。 –

相關問題