cari

Rumah  >  Soal Jawab  >  teks badan

php - Bagaimanakah medan dalam ActiveForm dalam masa keluaran YII2 dan bukannya cap waktu?

<?= $form->field($model, 'masa')->textInput() ?>

Soalan 1:
Masa saya adalah cap masa dalam pangkalan data Apa yang saya ingin paparkan sekarang ialah bagaimana untuk menanganinya?

Soalan 2:
Saya mengisi rentetan seperti 2017-05-13 dalam borang tarikh ini Apakah kaedah yang boleh ditulis dalam model untuk menukarnya secara automatik kepada cap waktu?

漂亮男人漂亮男人2757 hari yang lalu543

membalas semua(1)saya akan balas

  • 怪我咯

    怪我咯2017-05-16 12:59:56

    class XXX extends \yii\db\ActiveRecord
    {
        public function rules()
        {
            return [
            
                ...other rules...
                
                ['time', function($attr, $params) {
                    if ($this->hasErrors()) return false;
    
                    $datetime = $this->{$attr};
                    
                    $time = strtotime($datetime);
                    // 验证时间格式是否正确
                    if ($time === false) {
                        $this->addError($attr, '时间格式错误.');
                        return false;
                    }
                    // 将转换为时间戳后的时间赋值给time属性
                    $this->{$attr} = $time;
                    return true;
                }],
            ];
        }
    
        ...others...
        
        /**
         * 从数据库中 find() 数据后将 time 格式化。
         */
        public function afterFind()
        {
            parent::afterFind();
            $this->time = date('Y-m-d', $this->time);
        }

    balas
    0
  • Batalbalas