Cookie的正确日期格式

时间:2013-05-25 21:34:24

标签: php javascript ajax cookies session-cookies

所以我试图做我认为不可能的事情。我想在浏览器或标签页上关闭所有会话cookie,所以我提出了一个解决方案,我只是遇到了JavaScript格式的小问题。这必须是基于时间的,因为当下一页重新加载时,它将使计时器到期一年,以便我网站上的其他页面也不会删除cookie。因此,在他们离开网站或关闭标签之前,Cookie不会过期。

所以JavaScript开头是这样的:

var today = new Date(); 
today.setSeconds(today.getSeconds() + 5);

alert(today);



window.onunload = function(){
   document.cookie = 'PHPSESSID=; expires=' + today;
   };

所以当我运行它时,它无法识别今天的变量,或者我今天没有正确格式化。

感谢所有帮助!

2 个答案:

答案 0 :(得分:1)

today变量超出范围。您需要在卸载时创建它,或者在函数()中传递它。

window.onunload = function(today){
   document.cookie = 'PHPSESSID=; expires=' + today.getTime();
   };

OR

    window.onunload = function(){
       var today = new Date(); 
       today.setSeconds(today.getSeconds() + 5);

       document.cookie = 'PHPSESSID=; expires=' + today.getTime();
       };

答案 1 :(得分:0)

所以我决定用一个小脚本销毁会话cookie。

这就是我想出的。

window.onunload = function(){
  var today = new Date();
  today.setSeconds(today.getSeconds() + 2);
  var today1= today.toUTCString()



  document.cookie =
      'PHPSESSID=<?php echo $sesid; ?>; expires='+ today1 +'; path=/'
      alert(document.cookie);
  };

所以这会将destroy设置为2秒,但是如果你导航到我网站上的任何其他页面,它将首先运行。

var today2 = new Date();
today2.setSeconds(today2.getSeconds() + 10000);
var today3= today2.toUTCString()

document.cookie =
  'PHPSESSID=<?php echo $sesid; ?>; expires='+ today3 +'; path=/';

这样,只要您离开页面,就可以销毁会话。