使用javascript以AM/PM格式减去两次
我正在使用一个使用javascript以AM/PM格式减去两次,javascript,jquery,datejs,Javascript,Jquery,Datejs,我正在使用一个date.js插件将我的时间转换成日期对象,然后减去它们。但是结果无效。我的时间是这样的11:00 pm 这就是我正在做的: var tim_i = $('#in_time').val(); var tim_o = $('#out_time').val(); total_tim = ""; if (tim_i && tim_o ){ d1 = Date.parse(tim_i); d2 = Date.parse(tim_o); date_di
date.js
插件将我的时间转换成日期对象,然后减去它们。但是结果无效。我的时间是这样的11:00 pm
这就是我正在做的:
var tim_i = $('#in_time').val();
var tim_o = $('#out_time').val();
total_tim = "";
if (tim_i && tim_o ){
d1 = Date.parse(tim_i);
d2 = Date.parse(tim_o);
date_diff = new Date(d2 - d1);
total_tim=date_diff.getHours() + ':' + date_diff.getMinutes();
}
$('#total_time').val(total_tim);
还有什么我需要做的吗?试试这个:
var tim_i = new Date($('#in_time').val());
var tim_o = new Date($('#out_time').val());
total_tim = "";
if (tim_i && tim_o) {
var timeDiff = Math.abs(tim_o.getTime() - tim_i.getTime());
var getHours = Math.ceil(timeDiff / (1000 * 3600));
var getMinutes = Math.ceil(timeDiff % (1000 * 60));
total_tim = getHours + ':' + getMinutes;
}
Datejs中的TimeSpan类可能有助于简化问题 下面是一个可以在Firebug中运行的示例,它将两个字符串解析为日期对象,然后以小时+分钟为单位输出差值 示例
var d1 = Date.parse("6:30 am");
var d2 = Date.parse("11:00 pm");
var diff = new TimeSpan(d2 - d1);
console.log("Hours: ", diff.hours);
console.log("Minutes: ", diff.minutes);
希望这有帮助
编辑:如果你真的想简洁,你甚至可以简化成一行
new TimeSpan(Date.parse("11:00 pm")-Date.parse("6:30 am")).toString("H:mm")
看一看:它解释了如何用JS解析时间。请注意。现在我得到的结果是:NaN:NaN