FrontEnd/JavaScript

[JavaScript] 날짜 비교

모야이거였어 2022. 1. 11. 19:14

1. 비교 연산자 (>, <)

var date1 = new Date('2020-10-23');
var date2 = new Date('2020-10-22');

console.log(date1 > date2);	//true
console.log(date1 >= date2);	//true
console.log(date1 < date2);	//false
console.log(date1 <= date2);	//false

등호연산자(==) 로 객체를 비교할 수 없음 -- Object 끼리 비교가 안된다는걸 명심

var date1 = new Date();
var date2 = new Date(date1);

console.log(date1 == date2);	//false
console.log(date1 === date2);	//false
console.log(date1 != date2);	//true
console.log(date1 !== date2);	//true

 

 

 

2. getTime() 메서드

두 날짜를 시간에 해당하는 숫자 값으로 변환 한 다음 두 날짜를 직접 비교

let date1 = new Date(2019, 08, 10); 
let date2 = new Date(2019, 08, 03); 
if (date1.getTime() < date2.getTime()) 
  document.write("date1 is lesser than date2"); //출력
else if (date1.getTime() > date2.getTime()) 
  document.write("date1 is greater than date2"); 
else
  document.write("both are equal");

등호 연산자로 같은지 확인 가능함!

let date1 = new Date();
let date2 = new Date(date1);

if (date1.getTime() == date2.getTime())
	document.write("Two dates are equal."); //출력

if (date1.getTime() === date2.getTime())
	document.write("Two dates are equal.");	//출력

 

 

 

3. valueOf() 메서드

getTime()메서드와 유사하게 작동, Date개체를 숫자 값으로 변환

getTime()valueOf()는 모두 1970 년 1 월 1 일 00:00 UTC 이후의 밀리 초 수를 반환

let date1 = new Date(2021, 12, 23, 11, 22, 33); 
let date2 = new Date(2021, 12, 23, 11, 22, 33); 
if (date1.valueOf() < date2.valueOf()) 
  document.write("date1 is lesser than date2"); 
else if (date1.valueOf() > date2.valueOf()) 
  document.write("date1 is greater than date2"); 
else if(date1.valueOf() === date2.valueOf())
  document.write("both are equal"); 	//출력

console.log(date1.valueOf() === date2.valueOf())  //true

 

 

 

4. Numer() 메서드

Date 객체를 Java에서 객체의 값을 나타내는 숫자로 변환

개체를 유효한 숫자로 변환 할 수없는 경우 NaN을 반환

-> 뒤에서 valueOf() 메서드를 호출함

let date1 = new Date(2021, 12, 23, 11, 22, 33); 
let date2 = new Date(2021, 12, 23, 11, 22, 33); 

console.log(Number(date1) === Number(date2)) 	//true
console.log(Number(date1) == Number(date2) )	//true
console.log(Number(date1) < Number(date2)) 	//false
console.log(Number(date1) > Number(date2) )	//false

 

 

 

5. 플러스 단항 연산자

단항연산자 : 단일 인수를 취하고 인수 또는 피연산자에 대해 작동

인수를 숫자로 변환하는 단항 더하기 +연산자를 사용

-> 뒤에서 valueOf() 메서드를 호출함

let date1 = new Date(2021, 12, 23, 11, 22, 33); 
let date2 = new Date(2021, 12, 23, 11, 22, 33); 

console.log(+date1 === +date2) 	//true
console.log(+date1 == +date2) 	//true
console.log(+date1 < +date2) 	//false
console.log(+date1 > +date2)	//false