두 개의 다른 날짜 개체가 같은 날짜 정보 (같은 일, 월, 연도 …)를 가지고 있는지 어떻게 확인할 수 있습니까? “==”, “===”및 .equals를 시도했지만 작동하지 않는 것 같습니다.
답변
답변
시간에 관계없이 날짜가 같은 날에 발생하는지 확인하는 데만 관심이있는 경우 toDateString()
방법 을 사용하여 비교할 수 있습니다 . 이 메서드는 시간없이 날짜 만 반환합니다.
var start = new Date('2015-01-28T10:00:00Z');
var end = new Date('2015-01-28T18:00:00Z');
if (start.toDateString() === end.toDateString()) {
// Same day - maybe different times
} else {
// Different day
}
답변
이 코드를 사용했습니다.
Date.prototype.isSameDateAs = function(pDate) {
return (
this.getFullYear() === pDate.getFullYear() &&
this.getMonth() === pDate.getMonth() &&
this.getDate() === pDate.getDate()
);
}
그런 다음 다음과 같이 호출하십시오. if (aDate.isSameDateAs(otherDate)) { ... }
답변
정수로 유형 변환 :
a = new Date(1995,11,17);
b = new Date(1995,11,17);
+a === +b; //true
답변
헬 나르,
당신은 시도 할 수 있습니다 (함수 이름 :)-getTime이 아닌 felix의 valueof에 따라 수정 됨)
function isEqual(startDate, endDate) {
return endDate.valueOf() == startDate.valueOf();
}
용법:
if(isEqual(date1, date2)){
// do something
}
거기에 당신을 데려다 줄 수도 있습니다.
또한보십시오:
‘http://www.java2s.com/Tutorial/JavaScript/0240__Date/DatevalueOf.htm’
답변
더 나은 날짜 지원을 위해 moment.js 및 isSame 메서드를 사용하십시오.
var starDate = moment('2018-03-06').startOf('day');
var endDate = moment('2018-04-06').startOf('day');
console.log(starDate.isSame(endDate)); // false ( month is different )
var starDate = moment('2018-03-06').startOf('day');
var endDate = moment('2018-03-06').startOf('day');
console.log(starDate.isSame(endDate)); // true ( year, month and day are the same )
답변
그들을 빼고 0과 비교하십시오.
var date1 = new Date();
var date2 = new Date();
// 날짜로 무언가를합니다 …
(date1 - date2) ? alert("not equal") : alert("equal");
변수에 넣으려면 :
var datesAreSame = !(date1 - date2);