Javascript 会话超时-结果(分钟)

Javascript 会话超时-结果(分钟),javascript,php,session-timeout,minute,Javascript,Php,Session Timeout,Minute,var IDLE\u TIMEOUT=2700//秒45分 var_idleSecondsCenter=0; document.onclick=函数(){ _IDLESecondsCenter=0; }; document.onmousemove=函数(){ _IDLESecondsCenter=0; }; document.onkeypress=函数(){ _IDLESecondsCenter=0; }; setInterval(CheckIdleTime,1000); 函数CheckIdle

var IDLE\u TIMEOUT=2700//秒45分
var_idleSecondsCenter=0;
document.onclick=函数(){
_IDLESecondsCenter=0;
};
document.onmousemove=函数(){
_IDLESecondsCenter=0;
};
document.onkeypress=函数(){
_IDLESecondsCenter=0;
};
setInterval(CheckIdleTime,1000);
函数CheckIdleTime(){
_idleSecondsCenter++;
var oPanel=document.getElementById(“SecondsUntilExpire”);
if(oPanel)
oPanel.innerHTML=(空闲\u超时-\u空闲秒中心)+”;
如果(\u idleSecondsCenter>=空闲\u超时){
//警报(“您的会话时间已过期。请登录”);
document.location.href=“logoff.php”;
}
}
使用
parseInt((空闲超时-)空闲秒中心)/60+“:”+(空闲超时-)空闲秒中心)%60以实现hh:mm效果

var IDLE\u TIMEOUT=2700//秒45分
var_idleSecondsCenter=0;
document.onclick=函数(){
_IDLESecondsCenter=0;
};
document.onmousemove=函数(){
_IDLESecondsCenter=0;
};
document.onkeypress=函数(){
_IDLESecondsCenter=0;
};
setInterval(CheckIdleTime,1000);
函数CheckIdleTime(){
_idleSecondsCenter++;
var oPanel=document.getElementById(“SecondsUntilExpire”);
if(oPanel)
oPanel.innerHTML=parseInt((空闲超时-_空闲秒中心)/60)+“:”;
oPanel.innerHTML+=(空闲\u超时-\u空闲秒中心)%60=空闲\u超时){
警报(“您的会话时间已过期。请登录”);
//document.location.href=“logoff.php”;
}
}
使用
parseInt((空闲超时-)空闲秒中心)/60+“:”+(空闲超时-)空闲秒中心)%60以实现hh:mm效果

var IDLE\u TIMEOUT=2700//秒45分
var_idleSecondsCenter=0;
document.onclick=函数(){
_IDLESecondsCenter=0;
};
document.onmousemove=函数(){
_IDLESecondsCenter=0;
};
document.onkeypress=函数(){
_IDLESecondsCenter=0;
};
setInterval(CheckIdleTime,1000);
函数CheckIdleTime(){
_idleSecondsCenter++;
var oPanel=document.getElementById(“SecondsUntilExpire”);
if(oPanel)
oPanel.innerHTML=parseInt((空闲超时-_空闲秒中心)/60)+“:”;
oPanel.innerHTML+=(空闲\u超时-\u空闲秒中心)%60=空闲\u超时){
警报(“您的会话时间已过期。请登录”);
//document.location.href=“logoff.php”;
}
}

您需要此功能吗

  var IDLE_TIMEOUT = 2700;
  alert(getMinutes(IDLE_TIMEOUT));
  function getMinutes(time){
       minutes = time/60;
       seconds = time%60;
       return ("00" + minutes).substr(-2)+":"+("00" + seconds).substr(-2);
 }

演示:

您需要此功能吗

  var IDLE_TIMEOUT = 2700;
  alert(getMinutes(IDLE_TIMEOUT));
  function getMinutes(time){
       minutes = time/60;
       seconds = time%60;
       return ("00" + minutes).substr(-2)+":"+("00" + seconds).substr(-2);
 }

演示:

以下是我如何将其编码为可读的

function CheckIdleTime() {
    _idleSecondsCounter++;
    var oPanel = document.getElementById("SecondsUntilExpire");
    var remain = IDLE_TIMEOUT - _idleSecondsCounter;
    var remainMinutes = Math.floor(remain / 60);
    var remainSeconds = ('0' + (remain % 60)).substr(-2);
    if (oPanel)
        oPanel.innerHTML = remainMinutes + ':' + remainSeconds; 
    if (_idleSecondsCounter >= IDLE_TIMEOUT) {
        //alert("Your Session Time expired. Please Login.");
        document.location.href = "logoff.php";
    }
}
使用


所以秒总是两位数

以下是我如何将其编码为可读的

function CheckIdleTime() {
    _idleSecondsCounter++;
    var oPanel = document.getElementById("SecondsUntilExpire");
    var remain = IDLE_TIMEOUT - _idleSecondsCounter;
    var remainMinutes = Math.floor(remain / 60);
    var remainSeconds = ('0' + (remain % 60)).substr(-2);
    if (oPanel)
        oPanel.innerHTML = remainMinutes + ':' + remainSeconds; 
    if (_idleSecondsCounter >= IDLE_TIMEOUT) {
        //alert("Your Session Time expired. Please Login.");
        document.location.href = "logoff.php";
    }
}
使用



所以秒总是两位数

请查看此案例,了解您的格式需要您使用的浏览器是什么?我使用的是什么Firefox@Scuzzy,谢谢…我试过了,效果很好…谢谢为您的格式需求检查此案例您正在使用什么浏览器?我正在使用Firefox@Scuzzy ,谢谢…我试过了,效果很好。。。thanks@JaromandaX谢谢,代码更新了。现在将显示
1:01
@JaromandaX谢谢并更新代码。现在它将显示
1:01
Hey Jaromanda,感谢它的工作…还有一个问题会话超时事件在所有选项卡上都不工作…我的意思是说…如果我在同一浏览器中打开了两个选项卡,因此,在一个选项卡上是44:06,在第二个选项卡上是44:58…如果我刷新我的第一个选项卡…然后它会恢复到44:59,但如果我看到我的第二个选项卡显示43:34…所以我的问题是,如果超时时间小于1分钟,我能弹出一个窗口吗。。表示您将在1分钟内注销,如果用户单击“确定”,他/她将注销,如果用户单击“否”,则自动重置不知道您在这里询问什么。。。是否尝试在多个浏览器选项卡中同步超时?可能使用localStorage,或者firefox/chromeyes中的BroadcastChannel在所有选项卡中同步相同的超时。如果我在一个选项卡中刷新…自动重置所有其他选项卡请参阅以获取答案是的,我在谷歌上搜索并找到localStorage。。但需要时间来建立逻辑…因此,为了确定时间,我可以停止用户注销..就好像他们打开了许多选项卡..所以可能没有使用任何一个选项卡,会话将超时..因此弹出窗口将停止他们Hey Jaromanda,感谢它的工作…还有一个问题会话超时事件在所有选项卡上都不工作…我的意思是说…如果我在同一浏览器中打开了两个选项卡,因此,在一个选项卡上是44:06,在第二个选项卡上是44:58…如果我刷新我的第一个选项卡…然后它会恢复到44:59,但如果我看到我的第二个选项卡显示43:34…所以我的问题是,如果超时时间小于1分钟,我能弹出一个窗口吗。。表示您将在1分钟内注销,如果用户单击“确定”,他/她将注销,如果用户单击“否”,则自动重置不知道您在这里询问什么。。。是否尝试在多个浏览器选项卡中同步超时?可能使用localStorage,或者firefox/chromeyes中的BroadcastChannel在所有选项卡中同步相同的超时。如果我在一个选项卡中刷新…自动重置所有其他选项卡请参阅以获取答案是的,我在谷歌上搜索并找到localStorage。。但需要时间来建立逻辑…因此,为了确定时间,我可以停止用户的注销…就好像他们打开了许多选项卡…所以可能没有使用任何一个选项卡,会话将超时…因此,弹出窗口将停止他们