Menghitung hasil timediff dari mysql dengan outputnya dengan json_encode

Saya punya suatu kasus, pertama saya mencari selisih jam checkin dan checkout yang hasilnya disimpan di database dengan nama field total_sehari dan ini sudah solved. Yang kedua saya mencari selisih jam breakin dan breakout yang hasilnya disimpan di database dengan nama field total_istirahat ini solved, yang ketiga bagaimana saya menghitung hasil selisih total_sehari dan total_istirahat. Ini codingannya:

public function index1(Request $request) { $user_id = $request->user_id; $date = date("Y-m-d"); $time = date("H:i:s"); // 12:31:20 $note = "CHECKIN"; $note1 = "CHECKOUT"; $breakin = "BREAKIN"; $breakout = "BREAKOUT";

//Absen Masuk $absen = new Absen; if($request->has('checkin')) { $cek_double = $absen->where([ 'user_id' => $user_id,'date' => $date ])->count();

if ($cek_double > 0) { return redirect()->back(); } $absen->create([ 'user_id' => $user_id, 'date' => $date, 'checkin' => $time, 'note' => $note ]);

return redirect()->back(); }

elseif($request->has('checkout')) { $absen->where([ 'user_id' => $user_id, 'date' => $date ])->update([ 'checkout' => $time, 'note' => $note1 ]);

$results = DB::select('select TIMEDIFF(checkout, checkin) as total_sehari from absen where user_id = :id', ['id' => $user_id]); $absen->where([ 'user_id' => $user_id, 'date' => $date ])->update([ 'total_sehari' => json_encode($results[0]->total_sehari, JSON_FORCE_OBJECT) ]);

return redirect()->back(); }

elseif ($request->has('breakin')) {

$absen->where([ 'user_id' => $user_id, 'date' => $date ])->update([ 'breakin' => $time, 'note' => $breakin ]);

return redirect()->back(); }

elseif ($request->has('breakout')) { $absen->where([ 'user_id' => $user_id, 'date' => $date ])->update([ 'breakout' => $time, 'note' => $breakout ]);

$results = DB::select('select TIMEDIFF(breakout, breakin) as total_istirahat from absen where user_id = :id', ['id' => $user_id]); $absen->where([ 'user_id' => $user_id, 'date' => $date ])->update([ 'total_istirahat' => json_encode($results[0]->total_istirahat, JSON_FORCE_OBJECT) ]);

return redirect()->back(); } }

yang bingung itu jika saya menggunakan select id timediff(total_sehari,total_istirahat) ini hasilnya menjadi "00:00:0000"

avatar SeptianMY
@SeptianMY

3 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

Tanggapan

Halo, baca "aturan main" cara memasang kode yang nyaman dibaca

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban