在codeigniter中,如果数据库中的日期值为0000--00--00:00:00,则将输入字段显示为空

在codeigniter中,如果数据库中的日期值为0000--00--00:00:00,则将输入字段显示为空,codeigniter,Codeigniter,这就是我如何从我的控制器为下面的视图代码中的4个日期字段传递值的方式: $_POST["s_plan"] = $data['tasks_detail'][0]->nt_start_date; $_POST["e_plan"] = $data['tasks_detail'][0]->nt_end_date; $_POST["s_due"] = $data['tasks_detail'][0]->nt_start_due_date;

这就是我如何从我的控制器为下面的视图代码中的4个日期字段传递值的方式:

  $_POST["s_plan"] = $data['tasks_detail'][0]->nt_start_date;
        $_POST["e_plan"] = $data['tasks_detail'][0]->nt_end_date;
        $_POST["s_due"] = $data['tasks_detail'][0]->nt_start_due_date;
        $_POST["e_due"] = $data['tasks_detail'][0]->nt_end_due_date;

现在,当我在控制器中设置上述条件时。现在,即使date字段有日期值,视图中也不会显示任何内容。

[前几天我为此编写了一个函数:]

$_POST["s_plan"] = ($data['tasks_detail'][0]->nt_start_date != "0000-00-00") ? $data['tasks_detail'][0]->nt_start_date : "";
        $_POST["e_plan"] = ($data['tasks_detail'][0]->nt_end_date != "0000-00-00") ? $data['tasks_detail'][0]->nt_end_date : "";
        $_POST["s_due"] = ($data['tasks_detail'][0]->nt_start_due_date != "0000-00-00") ? $data['tasks_detail'][0]->nt_start_due_date : "";
        $_POST["e_due"] = ($data['tasks_detail'][0]->nt_end_due_date != "0000-00-00") ? $data['tasks_detail'][0]->nt_end_due_date : "";
函数ctd($datetime,$format=false,$displayzero=false){
$timestamp=strottime($datetime);
如果(!$格式){
$format='d.m.Y';//strotime('0000-00-00:00:00')){
返回日期($格式,$时间戳);
}否则{
如果($displayzero){
返回stru_替换(1,0,日期($format,strotime('0001-01-01 00:00:00'));
}否则{
返回false;
}
}
}

您必须根据您的条件比较值。我尝试过让我告诉您我尝试验证的方式。请检查问题的更新部分使用
设置值()在视图中检查您的条件。
$_POST["s_plan"] = ($data['tasks_detail'][0]->nt_start_date != "0000-00-00") ? $data['tasks_detail'][0]->nt_start_date : "";
        $_POST["e_plan"] = ($data['tasks_detail'][0]->nt_end_date != "0000-00-00") ? $data['tasks_detail'][0]->nt_end_date : "";
        $_POST["s_due"] = ($data['tasks_detail'][0]->nt_start_due_date != "0000-00-00") ? $data['tasks_detail'][0]->nt_start_due_date : "";
        $_POST["e_due"] = ($data['tasks_detail'][0]->nt_end_due_date != "0000-00-00") ? $data['tasks_detail'][0]->nt_end_due_date : "";
function ctd($datetime, $format=false, $displayzero=false){
     $timestamp = strtotime($datetime);
     if(!$format){
        $format = 'd.m.Y'; // <---------- your default Date-Format
     }
     if($timestamp > strtotime('0000-00-00 00:00:00')){
        return date($format, $timestamp);
     }else{
         if($displayzero){
            return str_replace(1, 0, date($format, strtotime('0001-01-01 00:00:00')));
         }else{
            return false;
         }
     }
}