【问题标题】:Proper Date Formatting for CookiesCookie 的正确日期格式
【发布时间】:2013-05-21 04:26:55
【问题描述】:

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

所以 JavaScript 是这样开始的:

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

alert(today);



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

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

感谢所有帮助!

【问题讨论】:

  • 好吧,我想我要试试另一种方法,这似乎行不通。

标签: php javascript ajax cookies session-cookies


【解决方案1】:

today 变量超出范围。需要在unload中创建,或者在function()中传入。

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

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

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

【讨论】:

  • 哦。德普!我会试试这个。
  • 这仍然不适用于此脚本。不过还是谢谢你的指正。
  • @KevinWeber alert 是否输出 today 的值?
  • 顺便说一句,你可能想要 today.getTime()
  • 将“today.getTime()”更改为“today.toUTCString()”有什么作用吗?
【解决方案2】:

所以我决定用一个小脚本来销毁会话 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);
  };

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

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

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

这允许在您离开页面时随时销毁会话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2013-09-18
    • 1970-01-01
    • 2018-09-25
    相关资源
    最近更新 更多