쿠키에 만료 날짜를 지정하고 그 만료 시각을 쿠키 내부에 함께 저장하면, 현재 브라우저 세션이 종료된 이후에도 쿠키의 수명을 연장할 수 있습니다. 이는 expires 속성에 원하는 날짜와 시간을 설정하는 방식으로 구현됩니다.
동작 원리
핵심은 현재 시간에 원하는 유지 시간(밀리초 단위)을 더해 만료 시점을 계산하는 것입니다. 예를 들어 30분은 30 × 60 × 1000 밀리초이며, Date 객체의 setTime() 메서드를 사용해 이 값을 더한 뒤 toUTCString()으로 변환하여 쿠키의 expires 속성에 저장합니다.
예제
아래 예제를 실행하면 입력한 이름이 담긴 쿠키가 생성되고, 30분 후 자동으로 만료되도록 설정됩니다.
<html>
<head>
<script>
<!--
function WriteCookie() {
var now = new Date();
var minutes = 30;
now.setTime(now.getTime() + (minutes * 60 * 1000));
cookievalue = escape(document.myform.customer.value) + ";"
document.cookie="name=" + cookievalue;
document.cookie = "expires=" + now.toUTCString() + ";"
document.write ("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>
</head>
<body>
<form name="myform" action="">
Enter name: <input type="text" name="customer"/>
<input type="button" value="Set Cookie" onclick="WriteCookie()"/>
</form>
</body>
</html>코드 설명
new Date()로 현재 시간을 가져온 뒤, now.getTime() + (minutes * 60 * 1000)을 통해 정확히 30분 후의 시각을 계산합니다. 이후 document.cookie에 쿠키 이름·값과 함께 expires=만료시각(UTC 문자열)을 설정하면, 브라우저는 지정된 시간이 지나면 해당 쿠키를 자동으로 삭제합니다.