Próbuję stworzyć system obecności. Różnica czasu w PHP
Na wyjazd I wywołania funkcji, która aktualizuje frekwencję w bazie danych i obliczania godzin (przy użyciu 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;
}
mogę pobrać mój udział, ID pracownika i wygenerować widok takiego w profilu pracownika.
Problemem jest to, jestem coraz złego wyliczenia godzin, prawdopodobnie ze względu na moje zapytania. Czy istnieje poprawka przez zapytanie lub czy muszę zachować różnicę czasu w formacie czasu, a następnie dodać wszystkie z nich pod koniec miesiąca, a następnie uzyskać godziny z tego.
"-1" w zapytaniu (HOUR (TIMEDIFF (check_out, check_in)) - 1) jest wymaganiem, ponieważ firma odejmuje godzinę obiadową od całkowitej liczby godzin. –
Czy próbowałeś obliczać różnicę czasu podczas wyświetlania wyniku, a nie pobierając dane tabeli dla przechowywanej kolumny 'godzina' w tabeli mysql? –
o nie, ale myślałem też o tym. Chodzi o to, że mam godziny jako kolumnę w tabeli obecności, aby codziennie przechowywać godziny. Ale charakter INT funkcji GODZINA daje mi tylko wartość podłogi, która codziennie marnuje wiele minut na każdego pracownika. –