jquery cookie 플러그인 사용 시 첨부
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js" integrity="sha512-3j3VU6WC5rPQB4Ld1jnLV7Kd5xr+cq9avvhwqzbH/taCRNURoeEpoPBK9pDyeukwSxwRPJ8fDgvYXd6SkaZ2TA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script type="text/javascript" src="./jquery.cookie.min.js"></script>
script 시작!
let popList = [
{'num':1, 'title':'팝업1', 'href':'', 'src':'/images/popup/test1.png', 'endDate':'2023-08-17'},
{'num':2, 'title':'팝업2', 'href':'', 'src':'/images/popup/test2.png', 'endDate':'2023-08-19'},
{'num':3, 'title':'팝업3', 'href':'', 'src':'/images/popup/test3.png', 'endDate':'2023-08-20'}
];
$(function () {
popList.forEach(function(el, index){ makePopList(el, index);});
getCookie();
popDayChk();
});
function makePopList(el, index){
$('.pop-wrap').append(`
<article class="pop-main" id="popMain${el.num}">
<div class="popbody" >
<a href="${el.href}">
<img src="${el.src}" width="100%" height="100%">
</a>
</div>
<div class="popfooter between px-3 py-2 fs-14" data-num="${el.num}">
<button class="text-white">
<i class="fa-solid fa-check me-1" style="color: #ffffff;"></i>오늘그만보기
</button>
<button type="button" class="text-white" >닫기</button>
</div>
</article>`
);
}
function getCookie(){
let num = $('.pop-wrap').children('.pop-main').length;
for(let i = 1; i <= num; i++){
let cookieChk = $.cookie(`popup${i}`);
cookieChk ? $(`#popMain${i}`).remove() : $(`#popMain${i}`).show();
}
}
function popDayChk(){
let toDay = new Date().toISOString().substring(0,10);
for(let i = 0; i<popList.length; i++){
if(toDay > popList[i].endDate) $(`#popMain${popList[i].num}`).remove();
}
}
function closePop(obj){
let num = $(obj).parent().data('num');
$(`#popMain${num}`).remove();
}
function closePopOneDay(obj){
let num = $(obj).parent().data('num');
let date = new Date();
date.setHours(24,0,0);
$.cookie(`popup${num}`,"hide",{expires:date, path:"/"});
closePop(obj);
}
function closePopOneDay(obj){
let num = $(obj).parent().data('num');
$.cookie(`popup${num}`,"hide",{expires:1, path:"/"});
closePop(obj);
}
1. cookie
- 쿠키보는 법 : 개발자도구 - application - Cookies 에서 확인가능
- 쿠키 삽입 (jquery와 javascript 비교)
$.cookie('name', 'value', { expires: 7, path: '/' });
function setCookie( name, value, expiredays ) {
var todayDate = new Date();
todayDate.setDate( todayDate.getDate() + expiredays );
document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";";
}
setCookie('name', 'value', 7);
- 쿠키 보기 (jquery와 javascript 비교)
$.cookie('name');
$.cookie('nothing');
function getCookie(name) {
var cookie = document.cookie;
if (document.cookie != "") {
var cookie_array = cookie.split("; ");
for ( var index in cookie_array) {
var cookie_name = cookie_array[index].split("=");
if (cookie_name[0] == "name") {
return cookie_name[1];
}
}
}
return ;
}
getCookie('name');
2. expires 와 시간표기
- 쿠키를 삽입후 expires를 확인하면 원하는 시간과 다른 시간이 나오는것을 확인할 수 있음
- 쿠키의 expires 옵션은 반드시 GMT(Greenwich Mean Time)포맷으로 설정되어야 하는데
- GMT / UTC 포맷은 우리나라 표준시보다 9시간 느림
- 예) UTC상으로 15시이면 우리나라 표준시는 24시(15+9시간)
- toGMTString(), toUTCString() 메서드로 변경할 수 있음
let todayDate = new Date();
console.log(todayDate);
console.log(todayDate.toGMTString());
console.log(todayDate.toUTCString());
- 참고로 우리나라 표준시로 쉽게 바꾸고 싶다면 toString() 쓰면 됨
var date = new Date('Thu, 17 Aug 2023 10:10:55 GMT');
console.log(date.toString());
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.