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()가 현재의 시간을 출력한다.
이렇게 하면 두 시간의 비교를 '분' 으로 하게 된다.
시간, 날짜, 초 등 다 비교를 할 수있음.
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 |