当我尝试进入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/

10-10 00:04
查看更多