我需要获取两个日期的差额,并更新数据库中日期的差额。
模型
public function approve($id, $leave_type, $leave_start, $leave_end)
{
$diffDays= abs($leave_end - $leave_start);
$this->db->set('leave_days', $diffDays);
$this->db->set('status', Approved);
$this->db->where('id', $id);
$this->db->update('leave');
return $this->db->affected_rows() > 0;
}
abs($ leave_end-$ leave_start);不管用。但是,当将硬编码值设置为diffDays时,它可以正常工作。
答案 0 :(得分:1)
Please try this for getting a difference between two dates.
$date1=date_create($leave_start);
$date2=date_create($leave_end);
$diff=date_diff($date1,$date2);
$days=$diff->format("%a");
$id = 1;
$this->db->set('leave_days', $days);
$this->db->where('id', $id);
$this->db->update('leave');
答案 1 :(得分:1)
将日期格式调整为您使用的格式。
$leave_start = DateTime::createFromFormat('Y-m-d', $leave_start);
$leave_end = DateTime::createFromFormat('Y-m-d', $leave_end);
$diffDays = $leave_end->diff($leave_start)->format("%a");
$this->db->where('id', $id);
$this->db->update('leave', array('leave_days' => $diffDays));
答案 2 :(得分:0)
$ leave_start = '01 -01-2018'; $ leave_end = '10 -01-2018';
$id = 1;
$diffDays = abs($leave_end - $leave_start);
$this->db->set('leave_days', $diffDays);
$this->db->where('id', $id);
$this->db->update('leave');
请确保您的$ diffDays有价值,因为它对我有用。