Diskon 80% terbatas! Masukkan kupon "merdeka" di kelas apa saja

Bagaimana ya cara mencari selisih waktu dengan Jquery

Mau tanya temen2, saya sudah berhasil menghitung selisih waktu dengan Jquery, tapi saya ingin kasih kondisi jika jam 12:00 s/d jam 13:00 itu tidak di hitung, misalkan selisih waktu dari jam 10:00 s/d 14:00 itu kan selisihnya 04:00 tapi karena dia melewati jam 12:00 s/d jam 13:00 jadi selisihnya cuma 03:00 gimana ya caranya biar otomatis tidak menghitung, ini script saya untuk mencari selisih waktu :


$("input").keyup(function(){
    var timeOfCall = $('#timeOfCall').val(),
        timeOfResponse = $('#timeOfResponse').val(),

     hours = timeOfResponse.split(':')[0] - timeOfCall.split(':')[0],
        minutes = timeOfResponse.split(':')[1] - timeOfCall.split(':')[1];

    minutes = minutes.toString().length<2?'0'+minutes:minutes;
    if(minutes<0){
        hours--;
        minutes = 60 + minutes;
    }
    hours = hours.toString().length<2?'0'+hours:hours;

    $('#delay').val(hours + ':' + minutes);
});

avatar ridwan14
@ridwan14

36 Kontribusi 10 Poin

Diperbarui 8 tahun yang lalu

6 Jawaban:

ada fullscript htmlnya?

avatar CodenameJR
@CodenameJR

278 Kontribusi 107 Poin

Dipost 8 tahun yang lalu

Ada Mas ini HTMLnya :


<input type="time" id="timeOfCall" >
<input type="time" id="timeOfResponse">

<input type="time" id="delay">

avatar ridwan14
@ridwan14

36 Kontribusi 10 Poin

Dipost 8 tahun yang lalu

Jawaban Terpilih

Saya bingung mas kalo AM & PM kalo inputanya text, mungkin ini bisa



<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("input").keyup(function(){
    var timeOfCall = $('#timeOfCall').val(),
        timeOfResponse = $('#timeOfResponse').val(),
     hours = timeOfResponse.split(':')[0] - timeOfCall.split(':')[0],
        minutes = timeOfResponse.split(':')[1] - timeOfCall.split(':')[1];

    if (timeOfCall <= "12:00:00" && timeOfResponse >= "13:00:00"){
    	a = 1;
    } else {
    	a = 0;
    }
    minutes = minutes.toString().length<2?'0'+minutes:minutes;
    if(minutes<0){
        hours--;
        minutes = 60 + minutes;
    }
    hours = hours.toString().length<2?'0'+hours:hours;

    $('#delay').val(hours-a+ ':' + minutes);
});
});
</script>
</head>
<body>

<input type="text" id="timeOfCall" >
<input type="text" id="timeOfResponse">

<input type="text" id="delay">
</body>
</html>


atau https://jsfiddle.net/z596qc8k/

avatar CodenameJR
@CodenameJR

278 Kontribusi 107 Poin

Dipost 8 tahun yang lalu

coba ini barangkali sesuai


var start_actual_time  =  "01/01/2017 10:00";
var end_actual_time    =  "01/01/2017 14:00";

start_actual_time = new Date(start_actual_time);
end_actual_time = new Date(end_actual_time);

var hours_start = start_actual_time.getHours();
var minutes_start = start_actual_time.getMinutes();

var hours_end = end_actual_time.getHours();
var minutes_end = end_actual_time.getMinutes();

var hours = 0;
var minutes = 0;

for (i=hours_start; i <= hours_end; i++){
	if(i != 12 && i != 13){
	  console.log(i);
		hours = hours + 1;
    minutes = minutes_end - minutes_start;
	}
}

alert(hours + ' hours ' + minutes + ' minutes ');

avatar gunalirezqimauludi
@gunalirezqimauludi

350 Kontribusi 243 Poin

Dipost 8 tahun yang lalu

mas @CodenameJR itu ko ketika di input di input text yang rumusnya gak berjalan tapi ketika pertama kali input : ini rumus berjalan, itu kenapa ya ?

avatar ridwan14
@ridwan14

36 Kontribusi 10 Poin

Dipost 8 tahun yang lalu

Karena perhitungan rumusnya menggunakan dua inputan, kalau baru satu yang diinput, rumusnya belum jalan sepenuhnya mas.

avatar CodenameJR
@CodenameJR

278 Kontribusi 107 Poin

Dipost 8 tahun yang lalu

Login untuk ikut Jawaban