gpt4 book ai didi

javascript - toDateString 有什么问题

转载 作者:行者123 更新时间:2023-11-29 17:27:24 24 4
gpt4 key购买 nike

以下是一个脚本+HTML,告诉用户他上次访问页面。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cookie</title>
<script type="text/javascript">
window.onload = initLastVisit;

function initLastVisit() {
var now = new Date();
var last = new Date();
now.setMonth(now.getMonth()+6);
document.cookie = "lastVisit=" + last.toDateString() + ";path=/;expires=" + now.toGMTString();
document.getElementById("lastVisitedOn").innerHTML = document.cookie.split("=")[1];
}
</script>
</head>

<body>
<form>
<label>Enter your name&nbsp;&nbsp;<input type="text" id="name_field" /></label> <br/>
</form>
<h1 id="lastVisitedOn"></h1>
</body>
</html>

上面脚本中设置cookie的语句是:document.cookie = "lastVisit=" + last.toDateString() + ";path=/;expires=" + now.toGMTString(); .如果在此我替换 now.toGMTString()now.toDateString()浏览器中的过期时间是 "Expires when i close my browser" 。这是为什么 ?toGMTString 没问题.正如预期的那样,到期日期为 2012 年 3 月。

最佳答案

如果您在控制台中同时尝试它们,您会发现它们根本不会给出相同的结果字符串:

(new Date()).toGMTString();
"Fri, 23 Sep 2011 16:33:01 GMT"

(new Date()).toDateString();
"Fri Sep 23 2011"

当您设置 cookie 时 you have to specify the time using GMT format ,如果您不这样做,您的浏览器将无法识别到期时间并认为没有指定。 When no expiry date is specified, cookie are created as "session cookie" ,一旦 session 结束(例如,您关闭浏览器)就会过期。

因此当您使用 toDateString() 时,它是一种无效的到期格式,您的浏览器会丢弃它并使用其创建 session cookie 的默认值。

关于javascript - toDateString 有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7532031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com