I need to get the difference of two dates and update the difference of the dates in the database.
model
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); is not working. But when a hardcoded value is set to diffDays, it works fine.
Details about my schema:
CREATE TABLE leave ( id int(11) NOT NULL, user_name text NOT NULL, user_id int(11) NOT NULL, leave_type varchar(255) NOT NULL, leave_start date NOT NULL, leave_end date NOT NULL, leave_days int(11) NOT NULL, status text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO leave (id, user_name, user_id, leave_type, leave_start, leave_end, leave_days, status) VALUES (121, 'Harry Potter', 6, 'Casual', '2018-06-28', '2018-06-29', 0, 'Approved'), (122, 'Harry Potter', 6, 'Annual', '2018-06-22', '2018-06-25', 0, 'Approved'), (123, 'Harry Potter', 6, 'Casual', '2018-06-23', '2018-06-25', 4, 'Approved');