是否可以从javascript检索现有cookie的创建或过期日期?如果是这样的话?
答案 0 :(得分:26)
这是不可能的。 document.cookie
包含字符串中的信息,如下所示:
key1=value1;key2=value2;...
所以没有关于日期的任何信息。
您可以将这些日期存储在单独的cookie变量中:
auth_user=Riateche;auth_expire=01/01/2012
但是用户可以更改此变量。
答案 1 :(得分:19)
这些信息不能通过document.cookie获得,但如果您真的非常渴望它,您可以尝试通过XmlHttpRequest对象执行请求到当前页面并使用getResponseHeader()访问cookie头。
答案 2 :(得分:12)
答案 3 :(得分:2)
你无法通过javascript获取cookie的截止日期,因为当你尝试从javascript中读取cookie时,document.cookie只返回cookie的名称和值
答案 4 :(得分:0)
一种可能性是删除cookie,你正在寻找到期日期并重写它。然后你就会知道失效日期。
答案 5 :(得分:0)
是的,有可能。我已将代码分成两个文件:
<强>的index.php 强>
<?php
$time = time()+(60*60*24*10);
$timeMemo = (string)$time;
setcookie("cookie", "" . $timeMemo . "", $time);
?>
<html>
<head>
<title>
Get cookie expiration date from JS
</title>
<script type="text/javascript">
function cookieExpirationDate(){
var infodiv = document.getElementById("info");
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest;
}else{
xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
}
xmlhttp.onreadystatechange = function (){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
infodiv.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "cookie.php", true);
xmlhttp.send();
}
</script>
</head>
<body>
<input type="button" onclick="javascript:cookieExpirationDate();" value="Get Cookie expire date" />
<hr />
<div id="info">
</div>
</body>
</html>
<强> cookie.php 强>
<?php
function secToDays($sec){
return ($sec / 60 / 60 / 24);
}
if(isset($_COOKIE['cookie'])){
if(round(secToDays((intval($_COOKIE['cookie']) - time())),1) < 1){
echo "Cookie will expire today";
}else{
echo "Cookie will expire in " . round(secToDays((intval($_COOKIE['cookie']) - time())),1) . " day(s)";
}
}else{
echo "Cookie not set...";
}
?>
现在,index.php必须加载一次。通过AJAX请求,“获取Cookie过期日期”按钮将始终为Cookie过期提供更新的“剩余时间”,在本例中为几天。
答案 6 :(得分:0)
如果您使用的是Chrome,则可以转到“资源”标签,然后在左侧边栏中找到“Cookie”项。从那里选择您正在检查设置cookie的域名,它将为您提供与该域名相关的cookie列表及其到期日期。