计算登录时长

计算登录的总时间,并且将计算的时间返回视图。计算的登录时长是动态变化的,每一秒都在刷新,可以直观看见当前账户登录了多长时间,并且可以加以判断后将当前登录账户进行强制注销,方法一与方法二都是在视图进行计算

//获取登录时长 方法一:
        function getTime() {
            $.ajax({
                type: "post",//layui插件固定样式,用post请求
                url: "/Main/getLoginTime",//路径
                dataType: "json",//数据类型
                success: function (data) {//判断返回数据
                    $("#LoginTime").html(data + "分钟");
                }
            });
            //每隔1分钟调用一次函数,更新登录时长
            setTimeout("getTime()",60000);
        }
        //获取登录时长 方法二:
        //获取登录时间
        var strServerTime = '@ViewBag.serverTime';
        //console.log(strServerTime);//Main:344 2019-01-02 11:27
        function getTime2() {
            if (strServerTime != "") {
                //创建日期对象
                var serverTime = new Date(strServerTime);
           //console.log(serverTime);//Wed Jan 02 2019 11:27:00 GMT+0800 (中国标准时间)
                window.setInterval(function () {
                    //当前时间
                    var dateNow = new Date();
                    //计算时间差
                    var date1 = dateNow - serverTime;

                //计算相差天数
                var days = Math.floor(date1 / (24 * 60 * 60 * 1000));
                //计算小时数
              var leave1 = date1 % (24 * 60 * 60 * 1000);//计算天数之后剩余的毫秒数
                var hours = Math.floor(leave1 / (60 * 60 * 1000));
                //计算分钟数
                var leave2 = leave1 % (60 * 60 * 1000);//计算小时数之后剩余的毫秒数
                var minutes = Math.floor(leave2 / (60 * 1000));
                //计算相差秒数
                var leave3 = leave2 % (60 * 1000);//计算分钟数之后剩余的毫秒数
                var seconds = Math.floor(leave3 / 1000);

                //记录登录时长的变量
                var strLoginTime = "";
                if (days > 0) {
                    strLoginTime += days + "天";
                }
                if (hours > 0) {
                    strLoginTime += hours + "小时";
                }
                if (minutes > 0) {
                    strLoginTime += minutes + "分钟";
                }
                strLoginTime += seconds + "秒";
                //将计算出来的登录时长放到主页面
                $("#LoginTime").text(strLoginTime);
            }, 1000);
        }
    }
public ActionResult getLoginTime()
        {
            //获取登录时间
            string loginTime = Session["ServerTime"].ToString();
            //将字符串类型的登录时间转换成DaaTime类型
            DateTime dateLoginTime = Convert.ToDateTime(loginTime);
            //获取当前时间
            DateTime dateTimeNow = DateTime.Now;
            //计算时间差
            TimeSpan time = dateTimeNow - dateLoginTime;
            //将时间差转换成分钟的格式
            double minutes = time.TotalMinutes;
            //转换成int类型
            int intMinutes = Convert.ToInt32(minutes);
            //返回视图层
            return Json(intMinutes, JsonRequestBehavior.AllowGet);
 }
    这样看起来不适很难看懂,还是比较容易接受的,下面是他的效果图

在这里插入图片描述
当前登录时间加登录总时间计算

你可能感兴趣的:(ASP.NET)