Tôi đang cố gắng tạo ra một hệ thống chấm công. Sự khác biệt về thời gian trong PHP
On kiểm tra ra tôi gọi một chức năng mà cập nhật tham dự trong cơ sở dữ liệu và tính toán giờ (Sử dụng CodeIgniter)
public function updateAttendance($data,$id)
{
date_default_timezone_set('Asia/Karachi');
$attendance=array(
'check_in'=> $data['check_in'],
'check_out'=> $data['check_out']
);
$this->db->WHERE('id',$id)->update('attendance',$attendance);
$this->db->query('UPDATE attendance SET hours=(HOUR(TIMEDIFF(check_out,check_in))-1) WHERE DATE(date)=\''.date('Y-m-d').'\' and employee_id='.$id);
return true;
}
tôi lấy sự tham dự của tôi bằng cách Id nhân viên và đưa ra một cái nhìn như thế này trong hồ sơ của người lao động.
Vấn đề là tôi nhận được tính sai giờ, có thể là do truy vấn của tôi. Có một sửa chữa bằng truy vấn hoặc tôi phải làm giữ cho thời gian khác biệt trong định dạng thời gian và sau đó thêm tất cả trong số họ vào cuối tháng và sau đó nhận được giờ ra khỏi nó.
"-1" trong truy vấn (HOUR (TIMEDIFF (check_out, check_in)) - 1) là yêu cầu vì công ty trừ giờ ăn trưa từ tổng số giờ. –
Bạn đã thử tính toán chênh lệch thời gian trong khi hiển thị kết quả, không phải bằng cách tìm nạp dữ liệu bảng cho cột 'giờ' được lưu trữ trong bảng mysql? –
ồ không, nhưng tôi cũng nghĩ như vậy. điều là tôi có giờ như một cột trong bảng tham dự để lưu trữ giờ trên cơ sở hàng ngày. Nhưng bản chất INT của hàm HOUR mang lại cho tôi giá trị sàn duy nhất mà lãng phí rất nhiều phút cho mỗi nhân viên trên cơ sở hàng ngày. –