当我想进入js世界时,它是我第一次尝试遇到并学习ejs。
现在我的问题是我遇到了以下错误:
for(i in data.result){ 22| var intime = data.result[i].intime; undefined is not a function
和相关代码如下:
<table >
<thead>
<th>Project Name</th><th>Date</th><th>Login</th><th>Logout</th><th>Time Spend</th>
</thead>
<%
var fraction = 1000 * 60 * 60;
for(i in data.result){
var intime = data.result[i].intime;
var outtime = data.result[i].outtime;
var difftime = ((outtime.getTime() - intime.getTime()) / fraction);
var date = data.result[i].date;
%>
<tr>
<td>Ninja</td>
<td><%=date%></td>
<td><%=intime%></td>
<td><%=outtime%></td>
<td><%=difftime%></td>
</tr>
<%
}
%>
</table>
我的尝试:
由于异常是说某些内容未定义且我正在尝试调用该函数,因此会引发异常。 因此,为了验证这一点,我省略了整个表格标签并仅添加了以下代码;
<%= JSON.stringify(data.result[0].outtime)%>
<br>
<%= JSON.stringify(data.result[1])%>
<br>
<%= JSON.stringify(data.result)%>
导致
"14:44:45"
{"empId":3,"projectId":1,"intime":"09:44:45","outtime":"14:44:45","date":"2014-08-05T18:30:00.000Z"}
[{"empId":3,"projectId":1,"intime":"09:44:45","outtime":"14:44:45","date":"2014-08-04T18:30:00.000Z"},{"empId":3,"projectId":1,"intime":"09:44:45","outtime":"14:44:45","date":"2014-08-05T18:30:00.000Z"}]
现在我无法弄清问题是什么以及我在这里犯了什么错误。
由于
答案 0 :(得分:1)
您正在尝试使用字符串(data.result[0].outtime
,并且可能是data.result[0].intime
),就像它是 Date 对象一样:{ {1}}
((outtime.getTime() - intime.getTime()) / fraction)
不是可用于字符串的函数(因此getTime()
),因此这就是您看到特定错误的原因。