用jQuery做时间减法

时间:2010-01-12 22:49:47

标签: jquery

我在页面上有两个时间值:

8:00
22:30

我需要从22:30减去8并获得14:30。

在jQuery中有没有直接的方法呢?如果有必要,插件对我来说很好。

更新: 第二个数字是总数,所以它也可能是

48:45

我从中减去的任何东西都应该从中减去它的总值,而不是任何与日期相关的计算。

5 个答案:

答案 0 :(得分:6)

你可以在javascript中完成。

假设您有start = '8:00'end = '22:30'。代码如下:

<script type="text/javascript">
    var start = '8:00';
    var end = '23:30';

    s = start.split(':');
    e = end.split(':');

    min = e[1]-s[1];
    hour_carry = 0;
    if(min < 0){
        min += 60;
        hour_carry += 1;
    }
    hour = e[0]-s[0]-hour_carry;
    diff = hour + ":" + min;

    alert(diff);
</script>

最后,diff是你的时差。

答案 1 :(得分:2)

我想尝试这段代码 - :

 var start = '8:00';
 var end = '23:30';

var startDate = new Date("1/1/1900 " + start _time);
var endDate = new Date("1/1/1900 " + end );
var difftime=endDate - startDate; //diff in milliseconds

答案 2 :(得分:1)

jQuery不是必需的,你可以用简单的JavaScript直接做到这一点:

function timeInHours(str)
{
   var sp = str.split(":");
   return sp[0] + sp[1]/60;
}

function hoursToString(h)
{
   var hours = floor(h);
   var minutes = (h - hours)*60;

   return hours + ":" + minutes;
}

var time1 = "08:00";
var time2 = "22:30";

var tot = hoursToString(timeInHours(time2) - timeInHours(time1));

答案 3 :(得分:0)

jquery没有内置解析/操作的日期。我也没有看过很多插件。 您最好的选择是创建一个函数,将两个日期转换为整数,执行添加,然后将结果转换为日期。

答案 4 :(得分:0)

您是否在寻找Timeago之类的内容?