我正在试图计算jquery中2个日期时间字符串之间的时间差。如何计算jQuery中2个日期时间值之间的时间差
我有2个输入,其中输入字符串是这样的“1:00 PM”,第二个“3:15 PM”我想知道时间差。所以上面的例子中,我想显示3.15
我所做的是
- 转换时间为24小时制。因此“1:00 PM”变成了“13:00:00”
- 我追加新的时间日期,像这样新的日期(“1970-1-1 13:00:00”)
- 然后我计算像相差这么
代码:
var total = Math.round(((new Date("1970-1-1 " + end_time) - new Date("1970-1-1 " + start_time))/1000/3600) , 2)
但总总是返回整数和小数不那么“下午1:00”和“3:15 PM”之间的差为2不是2.15 。
我也试过这种
$(function(){
$('#to_ad,#from_ad').change(function(){
$('#total_ad').val(getDiffTime());
});
function fixTimeString(time){
var hours = Number(time.match(/^(\d+)/)[1]);
var minutes = Number(time.match(/:(\d+)/)[1]);
var AMPM = time.match(/\s(.*)$/)[1];
if(AMPM == "PM" && hours<12) hours = hours+12;
if(AMPM == "AM" && hours==12) hours = hours-12;
var sHours = hours.toString();
var sMinutes = minutes.toString();
if(hours<10) sHours = "0" + sHours;
if(minutes<10) sMinutes = "0" + sMinutes;
return sHours + ':' + sMinutes + ':00';
}
function getDiffTime(){
var start_time = fixTimeString($('#from_ad').val());
var end_time = fixTimeString($('#to_ad').val());
var start = new Date("1970-1-1 " + end_time).getTime(),
end = new Date("1970-1-1 " + start_time).getTime();
return parseInt(((start - end)/1000/3600, 10)*100)/100;
}
}
但total_ad输入没有显示,但整数值。
我该如何解决这个问题?
感谢
[jquery的比较2倍(HTTP的可能重复: //sackoverflow.com/questions/4929604/comparing-2-times-with-jquery) – isherwood
'3.15 - 1 = 2.15'? – adeneo
jQuery从哪里进入图片?这不是简单的JavaScript吗? – biziclop