php - 日期格式无效

标签 php mysql date yii

我有一个像这样的数组:

 $holiday = array(array('h_date' => $new_year, 'd_name' => 'New Year'),
    array('h_date' => $memorial_day, 'd_name' => 'Memorial Day')
 foreach($holiday as $holidays){
 $date = $holidays["h_date"];
 $name = $holidays["d_name"]


当我保存在 mysql 数据库中时

 $model = new Holiday();
 $model->holiday_date = $date;
 $model->display_name = $name;
 $model->save(); 

当我写

 $model->save(false); 


值成功保存但没有“假”数据未保存
当看到验证错误比错误时:

 Array ( [holiday_date] => Array ( [0] => The format of Holiday Date is invalid.))


我们使用

protected function beforeSave(){
    if(parent::beforeSave()){
        $this->holiday_date=date('Y-m-d',strtotime($this->holiday_date));

        return TRUE;
    }

    return false;
}

最佳答案

您应该更改 beforeValidate 上的日期格式,或者更改您的 holiday_date 属性的验证规则,因为 beforeSave 在验证通过后执行。

public function beforeValidate()
{
    if ($this->isNewRecord)
    {
        $this->holiday_date = date('Y-m-d', strtotime($this->holiday_date));
    }
    return parent::beforeValidate();
}

关于php - 日期格式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15216620/

相关文章:

java - Java 准备语句中的通配符问题

iOS : How to check if date-time selected is valid time during day light savings?

javascript - 更改同一字段中的日期颜色和日期格式

php - MediaWiki CSS 未加载,MIME 类型错误

PHP 删除不为空的目录

MySQL JOIN 缺少正确的索引,表扫描

使用 lat 和 lng 小数搜索时,MySQL 查询返回 0 行

regex - 从时间戳 %j%Y %H :%M 中删除前导零

php - MAMP,没有返回记录

php - 流明:一对多插入数据时违反外键约束