空日期在1970/01/01进入数据库

时间:2015-08-05 13:28:30

标签: php mysql

所以我有数据库列的日期,但是当用户将此部分留空并更新记录时,它将保存在数据库中作为1970/01/01。

enter image description here

现在,当我将columng设为null = no和default = none时,这不起作用。

在我的代码中,我检查该值是否为null(这就是strtotime()函数失败的原因)。如果为null,我尝试将值保存为''。

        $niceDate = $this->judgement_date;
        $databaseDate = date("Y-m-d", strtotime($niceDate));
        if(is_null($databaseDate)){
            $databaseDate == '';
        }
        $this->judgement_date = $databaseDate;

我是否仍然在字段中保存''的空值,或者日期类型是否意味着它必须具有日期格式的值?

1 个答案:

答案 0 :(得分:2)

假设$this->judgement_date位于a valid date format $databaseDate代码永远不会为strtotime()date()始终返回false值(包括$niceDate)。您需要检查==是否具有有效值,如果不是则使用空字符串。

您还使用=代替 $niceDate = $this->judgement_date; if(empty($databaseDate)){ // null is empty $databaseDate = ''; } else { $databaseDate = date("Y-m-d", strtotime($niceDate)); } $this->judgement_date = $databaseDate; 作为赋值运算符,这是PHP将报告的逻辑错误。

{{1}}
相关问题