Возможно ли получить дату создания или срока действия существующего файла cookie из javascript? Если да, то как?
Как получить дату истечения срока действия cookie/дату создания из javascript?
Ответ 1
Информация не доступна через document.cookie, но если вы действительно отчаянно нуждаетесь в ней, вы можете попробовать выполнить запрос через объект XmlHttpRequest на текущую страницу и получить доступ к заголовку файла cookie с помощью getResponseHeader().
Ответ 2
Это невозможно. document.cookie
содержит информацию в строке:
key1=value1;key2=value2;...
Таким образом, информация о датах отсутствует.
Вы можете сохранить эти даты в отдельной переменной cookie:
auth_user=Riateche;auth_expire=01/01/2012
Но пользователь может изменить эту переменную.
Ответ 3
Теперь возможно с новым обновлением chrome для версии 47 для 2016, вы можете увидеть его через инструменты разработчика на вкладке ресурсов , выберите файлы cookie и найдите дату истечения срока действия вашего файла cookie в разделе "Срок действия/Макс. возраст"
Ответ 4
Если вы используете Chrome, вы можете перейти на вкладку "Ресурсы" и найти элемент "Cookies" на левой боковой панели. Оттуда выберите домен, на который вы проверяете установленный файл cookie, и он предоставит вам список файлов cookie, связанных с этим доменом, и дату их истечения.
Ответ 5
Одна из возможностей - удалить cookie, с которого вы ищете дату истечения срока действия и переписать его. Затем вы узнаете дату истечения срока действия.
Ответ 6
вы не можете получить дату истечения срока действия cookie через javascript, потому что когда вы пытаетесь прочитать куки файл из javascript, document.cookie возвращает только имя и значение cookie как пары
Ответ 7
Да, возможно. Я разделил код в двух файлах:
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 должен быть загружен один раз. Кнопка "Get Cookie expire date", через запрос AJAX, всегда будет получать обновленное "время влево" для истечения срока действия cookie, в этом случае через несколько дней.