Servlet 获取登录在线时长
开发工具与关键技术:java、 elipse2019、jdk1.8
作者:Amewin
撰写时间:2019年6月6日
说明:
很多时候,项目需求要获取当前的在线时长,而在java后台又不好处理时间格式,并不能很好返回需要的数据,所以参考网上的写法,自己弄了一个可用的封装方法。
后台代码
public static String getDatePoor(Date endDate, Date nowDate) {
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
// long ns = 1000;
// 获得两个时间的毫秒时间差异
long diff = endDate.getTime() - nowDate.getTime();
// 计算差多少天
long day = diff / nd;
// 计算差多少小时
long hour = diff % nd / nh;
// 计算差多少分钟
long min = diff % nd % nh / nm;
// 计算差多少秒//输出结果
// long sec = diff % nd % nh % nm / ns;
// System.out.println(day + "天" + hour + "小时" + min + "分钟");
return (day==0?"":day+"天") + (hour==0?"":hour+"小时") + + min ;
}
前台代码
<ul class="breadcrumb" style="float:right;margin-top:20px">
<li><span>登录时间:</span><spanid="bgclockshade"></span>
<%=session.getAttribute("logintime") %>
<!-- 将session中的数据展示出来 <%= %>-->
<span> </span></li><li><span>登录:</span><span id="LoginTime">
</span></li><li><a href="javascript:;" id="loginOut">注销</a></li>
</ul>
<script language="JavaScript">
$(function() {
time();
});
function time() {
$.ajax({
type: "post",
url: "loginMainServlet?type="+"time",
dataType: "json",
success: function (data) {
$("#LoginTime").html(data + "分钟");
}
});
setTimeout("time()", 30000);//每个30秒调用一次方法
}
</script>