每次用户登录javascript时转换totaltime
我希望每次用户登录时totalTime都以可读的格式显示,但这样我只获得id(1)的时间,其余时间以毫秒为单位显示每次用户登录javascript时转换totaltime,javascript,java,spring-mvc,Javascript,Java,Spring Mvc,我希望每次用户登录时totalTime都以可读的格式显示,但这样我只获得id(1)的时间,其余时间以毫秒为单位显示 <%@page import=" com.ephesoft.timesheet.core.model.LoginLog"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEn
<%@page import=" com.ephesoft.timesheet.core.model.LoginLog"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
function convertTime(milliSeconds) {
var str, days, hours, minutes, seconds;
if (milliSeconds > 0) {
milliseconds = milliSeconds;
days = Math.floor(milliseconds / (24 * 60 * 60 * 1000));
if (days < 0) {
days = 0;
}
milliseconds -= days * 24 * 60 * 60 * 1000;
hours = Math.floor(milliseconds / (60 * 60 * 1000));
if (hours < 0) {
hours = 0;
}
milliseconds -= hours * 60 * 60 * 1000;
minutes = Math.floor(milliseconds / (60 * 1000));
if (minutes < 0) {
minutes = 0;
}
milliseconds -= minutes * 60 * 1000;
seconds = Math.floor(milliseconds / (1000));
if (seconds < 0) {
seconds = 0;
}
} else {
days = hours = minutes = seconds = 0;
}
str = days + ":" + hours + ":" + minutes + ":" + seconds;
return str;
};
</script>
</head>
<table border="1">
<thead>
<tr>
<td>Login Id</td>
<td>Login Time</td>
<td>Logout Time</td>
<td>Total Time(in Minutes)</td>
</tr>
</thead>
<--- changes for Date --->
<%
List<LoginLog> log = (List<LoginLog>) r equest.getAttribute("loginList");
if(log != null) {
for(LoginLog login : log) {
String format = new SimpleDateFormat("EEE, d MMM yyyy ", Locale.ENGLISH).format(login.getLoginTime());
%>
<--- --->
<tr>
<td><%=login.getId()%></td>
<td><%=login.getLoginTime()%></td>
<td><%=login.getLogoutTime()%></td>
<td id="a"><span id="time"><%=login.getTotalTime()%></span> <script>
var milliSeconds = document.getElementById("time").innerHTML;
var c = convertTime(milliSeconds);
document.getElementById("a").innerHTML = c;
</script></td>
</tr>
<%
}
}
%>
</table>
</form>
</body>
</html>
can anyone please tell me appropriate way? THANKS.
在此处插入标题
函数转换时间(毫秒){
变量str,天,小时,分钟,秒;
如果(毫秒>0){
毫秒=毫秒;
天数=数学下限(毫秒/(24*60*60*1000));
如果(天数<0){
天数=0;
}
毫秒-=天*24*60*60*1000;
小时=数学下限(毫秒/(60*60*1000));
如果(小时<0){
小时=0;
}
毫秒-=小时*60*60*1000;
分钟=数学下限(毫秒/(60*1000));
如果(分钟<0){
分钟=0;
}
毫秒-=分钟*60*1000;
秒=数学下限(毫秒/(1000));
如果(秒<0){
秒=0;
}
}否则{
天=小时=分钟=秒=0;
}
str=天+“:“+小时+”:“+分钟+”:“+秒;
返回str;
};
登录标识
登录时间
注销时间
总时间(分钟)
var毫秒=document.getElementById(“时间”).innerHTML;
var c=转换时间(毫秒);
document.getElementById(“a”).innerHTML=c;
谁能告诉我合适的方法吗?谢谢
您的问题在于这段代码
<table border="1">
<thead>
<tr>
<td>Login Id</td>
<td>Login Time</td>
<td>Logout Time</td>
<td>Total Time(in Minutes)</td>
</tr>
</thead>
<%
List<LoginLog> log = (List<LoginLog>)request.getAttribute("loginList");
if(log != null) {
for(LoginLog login : log) {
%>
<tr>
<td><%=login.getId()%></td>
<td><%=login.getLoginTime()%></td>
<td><%=login.getLogoutTime()%></td>
<!-- changes -->
<td id="a<%=login.getId()%>"><span id="time<%=login.getId()%>"><%=login.getTotalTime()%></span> <script>
var milliSeconds = document.getElementById("time<%=login.getId()%>").innerHTML;
var c = convertTime(milliSeconds);
document.getElementById("a<%=login.getId()%>").innerHTML = c;
</script></td>
</tr>
<%
}
}
%>
</table>
会发现第一次发生,这就是为什么你总是有相同的日期
要使其工作,您应该使您的id唯一,以下是一个选项:
<span id="time<%login.getId()%>">
以及稍后的JS代码
var milliSeconds = document.getElementById("time"<%=login.getId()%>).innerHTML;
var毫秒=document.getElementById(“时间”).innerHTML;
@Vivek您能解决唯一id问题吗?“现在工作吗?”维韦克:我肯定会编辑我的回复。当我调试原始代码时,它只对原始代码进行了一些更改,在这一行**var millides=document.getElementById(“time”1).innerHTML;**….后的参数列表*显示syntaxerror*缺失)@Vivek my bad语法不正确,是这样的:var millizes=document.getElementById(“time”).innerHTML;hii@cralfaro,它每次更新id(1),而不是更新新id的记录。?@Vivek我刚刚更新了我的响应,问题还是一样的,但是对于标记,请记住,当您在标记元素中使用id时,这些元素在代码中必须是唯一的,或者当您运行document.getElementById('id')时,您将始终得到第一次出现
var milliSeconds = document.getElementById("time"<%=login.getId()%>).innerHTML;