2013-05-19 50 views
0

大家好!我发现这个剧本,我http://jsfiddle.net/diode/nuv7t/5/它使一个不同betweeen 2小时,但我需要定义这些2瓦尔2小时之间的区别jquery

var start_actual_time = "01/17/2012 11:20"; 
var end_actual_time = "01/18/2012 12:25"; 

这样一个项目:

var start_actual_time = "input#start"; 
var end_actual_time = "input#end"; 

,差异写入新的输入#result

这里是我尝试:http://jsfiddle.net/UmwXW/

如果有人能帮助我,谢谢。

+0

小心特定文化解析。例如,如果您有“01/04/2012”,则可以将其解析为1月4日或4月1日。浏览器的语言环境将决定它所遵循的内容。为了更加一致的解析,请在支持它的浏览器中使用ISO8601格式的输入,例如“2012-01-17T11:20”,或者使用[moment.js](http://momentjs.com/)使用明确的格式进行解析串。 –

回答

5

演示-->http://jsfiddle.net/UmwXW/1/

var start_actual_time = $("#start").val(); 
var end_actual_time = $("#end").val(); 

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

var diff = end_actual_time - start_actual_time; 

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

var formatted = ((HH < 10) ? ("0" + HH) : HH) + ":" + ((MM < 10) ? ("0" + MM) : MM) 
$('#result').val(formatted); 
+0

上例中的日期格式是mm-dd-YYYY。我使用bootstap日期时间选择器,我希望日期格式为dd-mm-YYYY。这将如何适用于这种格式。当我选择first_date作为01-10-2015 18:00和second_date作为02-10-2015 18:37。它将(second_date - first_date)设置为744:37。 – Mukesh

0

这是我与KEYUP功能最终代码。谢谢pXL。

$("#end").keyup(function() { 


var start_actual_time = $("#start").val(); 
    var end_actual_time = $("#end").val(); 

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

    var diff = end_actual_time - start_actual_time; 

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

    var formatted = ((HH < 10) ? ("0" + HH) : HH) + ":" + ((MM < 10) ? ("0" + MM) : MM) 
    $('#result').val(formatted); 

     }).keyup(); 

http://jsfiddle.net/UmwXW/2/

+0

上例中的日期格式是mm-dd-YYYY。我使用bootstap日期时间选择器,我希望日期格式为dd-mm-YYYY。这将如何适用于这种格式。当我选择first_date作为01-10-2015 18:00和second_date作为02-10-2015 18:37。它将(second_date - first_date)设置为744:37。 – Mukesh