2017-09-17 92 views
0

兩個日期時間差我有3個輸入形式,將提交併保存數據到數據庫中,形式是:查找數據庫笨

  • wktu_down(此輸入包含類似09/17 datetime數據/ 2017 9:58 PM 和將存儲與VARCHAR類型數據的數據庫)
  • wktu_up(這是相同的)
  • time_report(這將包含從計算wktu_up結果 - wktu_down

,我想,當我點擊time_report形式,它會自動的結果,我不填充數據不知道是我應該用Javascript還是不用。

模型

function update_model($data, $id_report){ 
     $this->db->where('id_report',$id_report); 
     $this->db->update('report', $data); 
    } 

    function get_data($id_report){ 
     $read= $this->db->query('select * from report where id_report='.$id_report); 
     if($read->num_rows() > 0){ 
      foreach ($read->result() as $data){ 
       $hasil[] = array(
        'id_report'=>$data->id_report, 
        'wktu_down'=>$data->wktu_down, 
        'wktu_up'=>$data->wktu_up, 
        'report_time'=>$data->report_time, 
       ); 
      } 
      return $result; 
     }else{ 
      return false; 
     } 
    } 
+0

不要儲存日期時間*用VARCHAR類型的數據*使用日期時間類型,而不是 –

+0

如果我使用日期時間類型,數據將是0000-00-00 00:00:00 –

+0

不只是格式正確選擇插入前的日期時間 –

回答

0

使用時間類型爲接收數據,但你可能需要重新格式化日期值,請嘗試使用:

// I get the format for your example '09/17/2017 9:58 PM' 
$wktu_down = DateTime::createFromFormat('d/m/Y h:i a', $this->input->post('wktu_down')); 
// The var $wktu_down is a DateTime Object and you need use the method format() 
echo $wktu_down->('Y-m-d H:i:s'); 

要獲得之間的兩個日期使用DateTime::diff的差異,像這樣:

// First get the DateTime object of two dates 
$wktu_down = DateTime::createFromFormat('d/m/Y h:i a', $this->input->post('wktu_down')); 
$wktu_up = DateTime::createFromFormat('d/m/Y h:i a', $this->input->post('wktu_up')); 
// Get the diff 
$diff = $wktu_down->diff($wktu_up); 
// Format the diff to days 
echo $diff->format('%a days'); 

可能在幾分鐘內得到差異,小時s等。支票DateInterval::format

不要忘記第方法的第二個參數,如果它包含任何值爲XSS attack的值,請將其清除。

$this->input->post('wktu_up', TRUE); 
+0

如何調用echo進入表單更新? –