登录后才开始计时,当会话结束时也就结束计时
SO EASY  sesstion_start  事件  和  session_end 事件里面  时间一减 就有了

解决方案 »

  1.   


    客户电脑死机session_end还会执行吗
      

  2.   

    session_end 在服务器端  肯定会执行的 
      

  3.   

    HttpContext.Current.Session["UserName"]=Username;
    HttpContext.Current.Session["LoginTime"]=DateTime.Parse.DateTime.Now.ToString));
    protected void Session_End(Object sender, EventArgs e)
    {
    if(Session["UserName"]!=null && Session["LoginTime"]!=null)
    {
    HNCCIC.DAL.DA_UserLogin UserLogin = new HNCCIC.DAL.DA_UserLogin();
    TimeSpan Duretime= DateTime.Parse(DateTime.Now.ToString())- DateTime.Parse(Session["LoginTime"].ToString());
    UserLogin.UpdateOnlineTime(Session["UserName"].ToString(),Convert.ToDouble(Duretime.TotalMinutes));//将在线时间差更新到数据库
    Session["UserName"]=null;
    Session["LoginTime"]=null;
    }} 
      

  4.   

    [color=#000000][color=#FF0000]<script language ="javascript" type ="text/javascript" >
         pageOpen = new Date();
         function bye()
         {
           pageClose = new Date();
           minutes = (pageClose.getMinutes()-pageOpen.getMinutes());
           seconds = (pageClose.getSeconds()-pageOpen.getSeconds());
           time = (seconds + (minutes*60));
           time = time + "秒钟";
           alert("您在这呆了" + time +".欢迎在来!");
                
         }
         </script>
    </head>
    <body onunload ="bye()" >
    [/color][/color]