본문 바로가기

Develop/HTML & JavaScript & CSS

Date 날짜 계산

기억이 안나면 아래의 글 참고하기
https://blog.leocat.kr/notes/2017/07/24/javascript-add-days

<input class="js datepicker from" type="text" id="start_date" value=""/>
<input class="js datepicker to" type="text" id="end_date" value=""/>

var calDate = function (){

    var result = false;

    var sdd = $('input:text[id=start_date]').val();
    var edd = $('input:text[id=end_date]').val();
    var ar1 = sdd.split('-');
    var ar2 = edd.split('-');
    var da1 = new Date(ar1[0], ar1[1]-1, ar1[2]);
    var da2 = new Date(ar2[0], ar2[1]-1, ar2[2]);
    var diff = da2.getTime() - da1.getTime();
    var days = Math.floor(diff/(1000*60*60*24));

    if(sdd && edd){
      console.log("days : " + days);

      if(days < 0 || days > 7){
        //$('#start_date').focus();
        ModalServiceModule.alert({
          message: '등록일은 최대 일주일 간격으로만 조회할 수 있습니다.'
        });
      } else {
        result = true;
      }
    }

    return result;

  };

 

날짜 표현 함수 

var formatDate = function(d) {
    var reDate = d.replace(/-/gi,'/'); //Safari Invalid date
    var date = new Date(reDate);
	var yyyyMMdd = date.getFullYear()+ '-' + (date.getMonth()+1).toString().padStart(2, '0') + '-' + date.getDate().toString().padStart(2, '0');
	return yyyyMMdd;
}

var now = new Date();

console.log(now);
console.log(formatDate(now)); // 2000-01-01

 

날짜 더하기/빼기

var calcDate = function(d) {
    var result;
    var now = new Date();
    result = new Date(now.setDate(now.getDate() + d)); //d 더하거나 뺄 값
    return result;
}


//2020-01-20 기준

calcDate(1)
Sun Jan 21 2020 11:28:40 GMT+0900 (한국 표준시)

calcDate(-1)
Sun Jan 19 2020 11:28:40 GMT+0900 (한국 표준시)

 

잔여일 구하기

- 날짜를 더하고 현재 날짜와 비교해서 몇일 남았는지 잔여일 전달

function expirDate(d){
	var soldOutDate = new Date(d);
	var now = new Date(); //현재 날짜
	var expDate = new Date(soldOutDate.setDate(soldOutDate.getDate() + 15)); //품절된 날짜에 15일을 더 함
	var gap = now.getTime() - expDate.getTime();    // 현재 날짜에서 expDate의 차이를 구한다.
	var result = Math.floor(gap / (1000 * 60 * 60 * 24)) * -1;    // gap을 일(밀리초 * 초 * 분 * 시간)로 나눈다. 이 때 -1 을 곱해야 날짜차이가 맞게 나온다.

	return result;

	//console.log('잔여일은' + result + '일 입니다.' );
}