1

giiを使用してクラッド画面を生成しました。検索フォームがあり、日付ピッカーを配置して、ユーザーが希望する日付を選択できるようにしています。

しかし、問題は、データベースに秒単位で日付が保存されていることです。

そして、strtotimeを使用して日付を変換できることを知っています。しかし、モデルの検索方法を使用してフィルタリングするにはどうすればよいですか?

これは私の日付ピッカーです

<?php 
        $this->widget('zii.widgets.jui.CJuiDatePicker', array(

        'name'=>'ordering_date',
        'id'=>'ordering_date',
        // additional javascript options for the date picker plugin
        'options'=>array(
            'showAnim'=>'fold',
        ),
        'htmlOptions'=>array(
            'style'=>'height:20px;'
        ),
        ));
    ?>

これが私のモデルでの検索方法です。ordering_dateを比較したい

public function search()
{
    // Warning: Please modify the following code to remove attributes that
    // should not be searched.
    //echo $this->ordering_date;
    $criteria=new CDbCriteria;

    $criteria->compare('order_id',$this->order_id);
    $criteria->compare('customer_id',$this->customer_id);
    $criteria->compare('delivery_address_id',$this->delivery_address_id);
    $criteria->compare('billing_address_id',$this->billing_address_id);
    $criteria->compare('ordering_date',$this->ordering_date);
    $criteria->compare('ordering_done',$this->ordering_done,true);
    $criteria->compare('ordering_confirmed',$this->ordering_confirmed);
    $criteria->compare('payment_method',$this->payment_method);
    $criteria->compare('shipping_method',$this->shipping_method);
    $criteria->compare('comment',$this->comment,true);
    $criteria->compare('status',$this->status,true);
    $criteria->compare('total_price',$this->total_price);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}
4

2 に答える 2

1

これを試して:

$this->widget('zii.widgets.jui.CJuiDatePicker', array(
        'model'=>$model,
        'attribute'=>'ordering_date',
        'options'   => array('dateFormat' => 'mm-dd-yy',),

そして検索

$begindate = CDateTimeParser::parse($this->ordering_date, 'MM-dd-yyyy');
$enddate   = $begindate + 24* 60*60;
$criteria->addBetweenCondition('ordering_date', $begindate, $enddate);
于 2012-06-06T08:52:03.383 に答える
0

$this->ordering_date = strtotime($this->ordering_date);比較する前に実行するか、$criteria->compare('ordering_date', strtotime($this->ordering_date));

于 2012-06-06T06:53:08.453 に答える