2010-01-12 77 views
4

我有一個頁面上有兩個時間值:做時間的減法運算與jQuery

8:00 
22:30 

我需要從22:30減去8和14:30獲得。

在jQuery中有直接的方法嗎?如果有必要,插件對我來說很好。

更新: 第二個數字是總計所以它也可能是像

48:45 

什麼我從中減去應該只是從中減去值作爲一個整體,沒有做任何日期相關的計算。

+0

你需要能夠在一夜之間? – 2010-01-12 22:56:00

+0

沒有過夜...第二個值總是總共幾個小時。 – Jason 2010-01-12 22:57:33

回答

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是你的時差。

+0

這樣做的伎倆,謝謝 – Jason 2010-01-12 23:45:20

+0

偉大的傢伙!你幫我!謝謝。 – 2017-12-28 23:11:01

0

jquery沒有任何內置的日期解析/操作。我也沒有看到很多插件。 最好的辦法是創建一個函數,將兩個日期轉換爲整數,進行加法運算,然後將結果轉換爲日期。

+0

日期!=次。 – nickf 2010-01-12 23:15:13

0

你在尋找什麼類似Timeago

+0

不,那不是我所追求的,而是感謝你指出了它。 – Jason 2010-01-12 23:02:00

+0

np。它很可愛 – Bostone 2010-01-12 23:14:25

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)); 
+0

我會用'timeInMinutes'和'minutesToString'去,只能用於浮點數上的整型操作。 – nickf 2010-01-12 23:17:37

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