Language/Java Script

moment.js 를 사용하여 시간 차이 구하기

원2 2022. 3. 25. 10:29
728x90
반응형

js 항상 시간을 다루는건 까다롭다고 생각하던중 moment.js 라는걸 알게 되었따

 

moment.js 는 js에서 시간을 다루기 위한 것이고, 깔끔하고 간결하게 표시할 수 있다.

 


아래는 특정 시간에 예약을 할 경우의 코드

현재 시간보다 이전의 시간을 예약할 수 없게 만들어보자

 

        // 입력 받아올 날짜 
        var t1 = moment("입력받아올날짜").format( "YYYY-MM-DD HH:mm");
        
        // 현재 날짜와 시간을 출력
        let t2 = moment().format("YYYY-MM-DD HH:mm");
        console.log(t1 + "----->t1");
        console.log(t2 + "----->t2");
        // 현재시간과 t1가 몇분이 차이가 나느냐를 출력
        console.log("분차이", moment().diff(t1, 'minutes'));
		
        // 현재 시간과 분 출력
        var t3 = moment().format('HH:mm');
        
        // 현재시간과 입력받은 시간의 차이를 구한다. 
        // Math.sign 함수를 사용하여 계산 결과가 양수면 현재 시간으로 변경되도록함
        var diffresult = Math.sign(moment().diff(t1, 'minutes'));
        console.log(diffresult + "양수음수 판단 양수면 현재시간보다 이전, 아니면 이후");

		// 결과 값이 양수면(이전시간) 현재시간을 입력.
        if (diffresult > 0) {
           
            $('#입력을 넣을 앨리먼트의 id').val(t3);
           
        }

 

알아보긴 힘들겠지만 핵심은 현재시간과 입력 받은 시간의 차이를 구하는 함수는 diff에 있다.

 


moment().diff(비교할 시간, 'minutes');

 

moment()가 현재의 시간을 출력한다.

이렇게 하면 두 시간의 비교를 '분' 으로 하게 된다.

시간, 날짜, 초 등 다 비교를 할 수있음.

 

https://momentjs.com/

 

Moment.js | Home

Format Dates moment().format('MMMM Do YYYY, h:mm:ss a'); moment().format('dddd'); moment().format("MMM Do YY"); moment().format('YYYY [escaped] YYYY'); moment().format(); Relative Time moment("20111031", "YYYYMMDD").fromNow(); moment("20120620", "YYYYMMDD"

momentjs.com

 

728x90
반응형

'Language > Java Script' 카테고리의 다른 글

Input 값 실시간 감지  (0) 2022.04.07
javascript:void(0)  (0) 2022.03.29
datepicker 설정 링크  (0) 2022.03.25
현재 시간 잘라서 출력하기  (0) 2022.03.24
해당 테이블의 특정 행의 값 가져오기  (0) 2022.03.03
js 파일을 수정해도 적용이 안될 때  (0) 2022.03.03