我试图通过javascript写一个cookie,过期时间为30分钟。我已经跟踪了堆栈和其他网站上的许多线程,我有一个我认为应该正常工作的代码,但cookie不是写的。
<script>
var date = new Date();
date.setTime(date.getTime()+(30*60*1000));
var expires = date.toGMTString();
var offset= -d.getTimezoneOffset()/60;
document.cookie = 'timezone='+offset+';expires='+expires+';path=/';
</script>
知道为什么这不起作用?最奇怪的是,我之前有过写过的cookie,但我无法让到期时间正常工作,现在我根本无法写出来!我几乎可以肯定我把我的代码改回原来的工作(没有过期时间),但现在我无法完全接受它。
有什么想法吗?
答案 0 :(得分:2)
您似乎在这里使用了一些未定义的d
变量,并且您收到了javascript错误(顺便说一句,您是否在javascript控制台中查看了一下?):
var offset= -d.getTimezoneOffset()/60;
你可能意味着:
var offset= -date.getTimezoneOffset()/60;
因为您的变量名为date
。
答案 1 :(得分:2)
试试这个:
<script>
var date = new Date();
date.setTime(date.getTime()+(30*60*1000));
var expires = date.toGMTString();
var offset= -date.getTimezoneOffset()/60;
document.cookie = 'timezone='+offset+';expires='+expires+';path=/';
</script>