2014-02-26 3 views
0

Im пытается вычислить разницу между 2 раза ввода, однако im получаю проблему с минут и секунд, поскольку im получает десятичный формат для обоих, когда я получаю разницу. Вот мой код http://jsfiddle.net/8deT5/4/Рассчитать разницу между 2 раз

$(function() { 

var dNow = new Date(); 
var localdate= dNow.getHours() + ':' + dNow.getMinutes() + ':' + dNow.getSeconds(); 
var a = $("#start_hour_sch"); 
var b = $("#end_hour_sch"); 
var result = $("#hourdifference"); 


$("#houradd").on("click", function() { 

    a.val(localdate); 

}); 

$("#hourend").on("click", function() { 

    b.val(localdate); 

var diff = new Date("1970-1-1 " + b.val()) - new Date("1970-1-1 " + a.val()); 

var diffSeconds = diff/1000; 
var HH = Math.floor(diffSeconds/3600); 
var MM = Math.floor(diffSeconds%3600)/60; 
var SS = Math.floor(diffSeconds%3600)/60; 

var formatted = ((HH < 10)?("0" + HH):HH) + ":" + ((MM < 10)?("0" + MM):MM) + ":" + ((SS < 10)?("0" + SS):SS) 

    result.val(formatted); 

}); 


}); 
+0

'localdate' назначается лишь один раз, то разница всегда будет 0 – EkoostikMartin

+1

momentjs имеет большие возможности для даты/времени сравнение и форматирование: http://momentjs.com/docs/#/displaying/difference/ – crickkills

ответ

0

Создайте другое значение для второй даты

$("#houradd").on("click", function() { 
    var dNow = new Date(); 
var localdate= dNow.getHours() + ':' + dNow.getMinutes() + ':' + dNow.getSeconds(); 
    a.val(localdate); 

}); 

$("#hourend").on("click", function() { 
     var dNow = new Date(); 
var localdate= dNow.getHours() + ':' + dNow.getMinutes() + ':' + dNow.getSeconds(); 
    b.val(localdate); 
Смежные вопросы