0

我试试这段代码

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;
4

2 回答 2

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
于 2012-08-08T13:11:20.817 回答
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;
于 2012-08-08T13:12:58.817 回答