1. 程式人生 > >Yii 日期和時間控制元件的使用

Yii 日期和時間控制元件的使用

               

1、關於日期控制元件,Yii內建擴充套件(zii)中有CJuiDatePicker,使用例子如下:

[php] view plain copy print?
  1. <code class="language-php">    <div class="Input">  
  2.     <label>End time:<span class="required">(*)</span></label>  
  3.     <?php  
  4.     $this->widget('zii.widgets.jui.CJuiDatePicker'array
    (  
  5.         'model'=>$deal,  
  6.         'attribute'=>'end_time',  
  7.         'options' => array(  
  8.             'dateFormat'=>'yy-mm-dd'//database save format
  9.             //'altFormat'=>'mm-dd-yy' //display format
  10.             //'showAnim'=>'fold',
  11.             //'yearRange'=>'-3:+3' 
  12.         ),  
  13.         'htmlOptions'
    =>array(  
  14.             'readonly'=>'readonly',  
  15.             'style'=>'width:90px;',  
  16.         )  
  17.     ));?>  
  18.     </div></code>  
    <div class="Input">    <label>End time:<span class="required">(*)</span></label>    <?php    $this->widget('zii.widgets
.jui.CJuiDatePicker', array(        'model'=>$deal,        'attribute'=>'end_time',        'options' => array(            'dateFormat'=>'yy-mm-dd', //database save format            //'altFormat'=>'mm-dd-yy' //display format            //'showAnim'=>'fold',            //'yearRange'=>'-3:+3'         ),        'htmlOptions'=>array(            'readonly'=>'readonly',            'style'=>'width:90px;',        )    ));?>    </div>
其中model和attribute引數必須同時提供,

這樣在控制器中對於該時間日期資料就無需額外的處理。

在一些複雜情況下,可以直接用name引數替換上面兩個引數組合,然後在控制器中對該資料輸入項做進一步處理後賦值給模型的屬性。

dateFormat用來控制日期資料儲存時的格式,altFormat用來控制介面顯示格式;

showAnim用來控制jqueryui日曆控制元件的顯示動畫;

yearRange用來設定年份範圍。

2、在很多時候,需要精確到時分秒的時間,那麼就需要用到Yii的一個timepicker擴充套件

把該擴充套件放到你的擴充套件路經下,比如extensions,在檢視中新增如下程式碼:

<?php $this->widget('application.extensions.timepicker.timepicker', array(    'model'=>$deal,    'name'=>'start_time',));?>
這個控制元件的日期格式是Y-m-d H:m:s和mysql的DATETIME型別匹配,如果你的資料庫中使用的是timestamp,那麼需要在控制器中額外轉換一下。

你還可以通過在css裡面定義button的樣式來更改該控制元件的按鈕顯示。

iefreer