2014-11-12 2 views
2

yii \ jui \ DatePicker에 대한 _form 파일에 다음 코드를 사용하고 있습니다. 날짜 선택시 날짜 형식이 올바르게 표시됩니다. gridview에서 렌더링 된 데이터는 OK입니다.Yii jui 날짜 선택기 형식

하지만 업데이트 기록을 열 때 표시되는 형식은 yyyy-mm-dd입니다, 나는

<?= $form->field($model, 'birth_date')->widget(DatePicker::className(), 


        [ 
         'language' => 'en', 
         'clientOptions' =>[ 
         'dateFormat' => 'd-m-yy', 
         'language' => 'US', 
         'country' => 'IN', 
         'showAnim'=>'fold', 
         'yearRange' => 'c-25:c+0', 
         'changeMonth'=> true, 
         'changeYear'=> true, 
         'autoSize'=>true, 
         'showOn'=> "button", 
         //'buttonImage'=> "images/calendar.gif", 
         'htmlOptions'=>[ 
         'style'=>'width:80px;', 
         'font-weight'=>'x-small', 
         ],]]) ?> 

감사 DD-MM-YYYY와 동일하게 보여주고 싶은.

답변

1

컨트롤러에서 날짜의 서식을 지정한 다음보기를 렌더링 할 수 있습니다. 컨트롤러에서 :

$model->birth_date=Yii::$app->formatter->asDate($model->birth_date, "dd-mm-yyyy"); 

는 Yii2의 공식 formatter 가이드 here를 살펴 보자.

+1

완벽하게 작동합니다. 나는 컨트롤러에'dd-M-yyyy'라는 수정 코드를 추가했다. 고마워요. – Joshi

+0

@Pawan 안녕하세요. –

+0

안녕하세요 @Ali :이 플러그인에 '시간'옵션을 표시 할 수 있습니까? 마찬가지로, 나는 'Kartik DateTime Picker'를 사용하고있었습니다. 그것은 잘 작동했다. 그러나 클라이언트는 날짜 선택 도구에서 시간을 사용하려고합니다. 가능한가? –

1

당신은 날짜 형식 (컨트롤러/모델처럼) 그런 다음 다른 곳

class Setup { 
    const DATE_FORMAT = 'php:Y-m-d'; 
    const DATETIME_FORMAT = 'php:Y-m-d H:i:s'; 
    const TIME_FORMAT = 'php:H:i:s'; 

    public static function convert($dateStr, $type='date', $format = null) { 
     if ($type === 'datetime') { 
       $fmt = ($format == null) ? self::DATETIME_FORMAT : $format; 
     } 
     elseif ($type === 'time') { 
       $fmt = ($format == null) ? self::TIME_FORMAT : $format; 
     } 
     else { 
       $fmt = ($format == null) ? self::DATE_FORMAT : $format; 
     } 
     return \Yii::$app->formatter->asDate($dateStr, $fmt); 
    } 
} 

당신이 데이터베이스에 저장하는 모든 입력 날짜/시간 문자열을 변환하려면이 기능에 액세스 할 수 있습니다를 일반화 할 수 있습니다.

$model->birth_date = Setup::convert($model->dateAttr); 
$model->birth_date = Setup::convert($model->datetimeAttr, 'datetime');