Javascript无法评估表达式

问题描述:

我试图计算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

我为终于能够找到答案。我需要多个start_rem_hour和end_hour 1来转换为int。看来js将它们作为字符串,当我乘以1时它会进入整数范围。

不知道问什么了。

对于日期时间计算在JavaScript中我会推荐Datejs库:

http://www.datejs.com/