我需要获取两个日期的差异并更新数据库中日期的差异。
型
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 时,它可以正常工作。
将日期格式调整为您正在使用的格式。
$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));
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');
$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有一些价值,因为它对我有用。