본문 바로가기

Javascript

D-DAY 계산 및 파폭, 사파리 버그

기존에 D-DAY 계산 스크립트가 있었다. 다음과 같다.

<script language=javascript>

var todaydate = new Date("MM-dd-yyyy");

var pubdate = new Date("MM-dd-yyyy");

var day = Math.ceil((todaydate-pubdate)/24/60/60/1000)-1; 

if(day < 0) {

document.write('[D'+day+']');

}else{

document.write('[D-0]');

}

</script> 


이게 사파리와 파이어폭스에서 D-0으로만 찍힌다. 그런데 Date부분이 눈에 거실려서 수정해주니 사파리 파이어 폭스에서도 잘 된다. 그리고 결정적으로 버그까지 있다. ㅡㅡ; 다음은 수정한 소스이다.

<script language=javascript>

var todaydate = new Date("yyyy","MM - 1","dd");

var pubdate = new Date("yyyy","MM-1","dd");

var day = Math.ceil((pubdate-todaydate)/24/60/60/1000);

if(day < 0) {

day = 0;

}

document.write('[D-'+day+']');

</script>


버그는 오늘까지 포함한 날을 계산해서 보여준다. 만일 내일 이벤트일이면 위에 소스는 D-2가 되는 것이다. 간만에 해보는거라 내가 잘못생각하는줄 알고 네이버의 D-DAY계산을 돌려보았다. 내 생각이 정확했다... 그리고 두번째 소스를 보면 MM-1이라고 월을 계산했는데, Date 객체의 특성이니 기억하면 되겠다.



'Javascript' 카테고리의 다른 글

객체 안의 프로퍼티 접근  (0) 2014.01.20
javascript Boolean 값  (0) 2014.01.20
소셜네트워크에 글올리기  (0) 2012.12.10
스크립트로 form 관리  (0) 2012.07.20
문서 객체와 객체지향을 이용한 움직임 구현  (0) 2012.07.09