2011-06-11 110 views
-1

我試圖計算JavaScript中的日差以應用某些值。所述第一表達Javascript無法評估表達式

如果subs_start

工作正常,但第二個

subs_end

不工作時,也一樣與

subs_mid

代碼:

var subs_start = 0; 
var subs_mid = 0; 
var subs_end = 0;    
var dayDiff = (end_year*365 + end_mon * 30 + end_day) 
      - (start_year*365 + start_mon* 30 + start_day); 
var oneDay=1000*60*60*24; 
var oneHour = 1000*60*60; 
var timeDiff = endDate.getTime() - startDate.getTime(); 
var hourDiff = timeDiff/oneHour; 
var start_rem_hour = 24 - start_hour*1; 

$.each(subsistence, function(id,subs){ 

    if(subs.start <= start_rem_hour && start_rem_hour < subs.end){ 
     subs_start = subs.rate; 
    }     
    alert('T' + end_hour); 

    if(subs.start <= end_hour && end_hour < subs.end){ 
     subs_end = subs.rate; 
     alert ('e ' + subs_end); 
    } 

    if(dayDiff > 2){ 
     if(subs.start >= 10){ 
      subs_mid = subs.rate * (dayDiff - 2); 
      alert ('m ' + subs_mid); 
     } 
    } 

}); 

var subs_allow = subs_start*1 + subs_mid*1 + subs_end*1 ; 
+0

你期望的行爲是什麼,出了什麼問題? – bbg 2011-06-11 04:50:10

+0

在這種情況下,短語「不工作」並不意味着什麼,除非你得到了一個你沒有想到的答案。你處理的數據是什麼?答案讓你感到驚訝?甚至可能是你的期望不正確...... – 6502 2011-06-11 06:21:01

回答

1

我爲終於能夠找到答案。我需要多個start_rem_hour和end_hour 1來轉換爲int。看來js將它們作爲字符串,當我乘以1時它會進入整數範圍。

0

不知道問什麼了。

對於日期時間計算在JavaScript中我會推薦Datejs庫:

http://www.datejs.com/