当我尝试进入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"}]
现在我无法弄清楚问题是什么,我在这里犯了什么错误。
谢谢
最佳答案
您正在尝试使用字符串(data.result[0].outtime
,大概也是data.result[0].intime
),就像它是Date对象一样:((outtime.getTime() - intime.getTime()) / fraction)
getTime()
不是可用于字符串的函数(因此是undefined
),因此这就是为什么您看到该特定错误的原因。
关于javascript - undefined不是ejs中的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25159457/