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

时间:2014-03-22 06:38:46

标签: codeigniter

  $_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;

这就是我在控制器中为以下视图代码中的4个日期字段传递值的方法:

<input type="text" name="s_plan" id="s_plan" value="<?php echo set_value('s_plan');?>" class="datepicker" />
<input type="text" name="s_due" id="s_due" value="<?php echo set_value('s_due');?>" class="datepicker" />
<input type="text" name="e_plan" id="e_plan" value="<?php echo set_value('e_plan');?>" class="datepicker" />
<input type="text" name="e_due" id="e_due" value="<?php echo set_value('e_due');?>" class="datepicker" />

现在每件事都有效,但我希望如果在数据库中这些日期字段的值为0000--00--00 00:00:00。在我的表单上不应该set_value。或者可能是echo "";

更新:

$_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 : "";

现在当我把条件放在我的控制器中时如上所述。即使日期字段具有日期值

,现在也没有显示任何内容

1 个答案:

答案 0 :(得分:0)

[我在另一天为此写了一个函数:]

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;
         }
     }
}