如何减去jquery中的时隙?

时间:2012-08-08 13:08:15

标签: javascript time

我试试这段代码

start_time = '08:15 AM'
end_time = '03:45 PM'
diff = end_time - start_time;

只有我想在jquery中减去时间。我在php中尝试过相同的操作,并且运行正常。 但不是在jquery

$st = strtotime("07:30 AM");
$edt = strtotime("06:15 AM");
echo round(abs($st - $edt) / 60,2). " minute";
echo "<br>";

echo $timediff=($edt-$st)/60;

2 个答案:

答案 0 :(得分:3)

使用Date()对象。你不能像你的问题那样减去字符串。

a = new Date(2012, 1, 2, 21, 1, 3, 5)
b = new Date(2012, 2, 3, 22, 2, 3, 5)
c = a - b // diff in milliseconds

答案 1 :(得分:1)

'08:00 AM''03:00 PM'是字符串,而不是数字,因此不能相互减去。

您可以使用日期对象创建两个时间的日期并减去它们来找到小时数差异。

以下是Date构造函数的参数:

new Date(year, month, day, hours, minutes, seconds, milliseconds)

所以

var start_d = new Date(0,0,0,8),
    end_d = new Date(0,0,0,11),
    diff = end_d - start_d;

或者,您可以使用Date的方法来定义时间

var start_d = new Date(), // makes a new date object of current time
    end_d = new Date(), // same
    diff;

start.setHours(8);
end.setHours(11);

diff = end_d - start_d;

这将返回以毫秒为单位的差异,以转换为小时:

diff_hours = diff / 1000 / 60 / 60;