moment.js를 처음 사용합니다. 날짜 개체가 있고 관련 시간이 있습니다. 비교할 시간을 제외하고 그 날짜가 오늘 날짜보다 크거나 같은지 확인하고 싶습니다 .
var dateToCompare = 2015-04-06T18:30:00.000Z
dateToCompare가 오늘 날짜보다 크거나 같은지 확인하고 싶습니다. 나는 moment.js의 isSame을 확인했지만 문자열과 날짜 부분 만 취하는 것 같습니다. 그러나 내 날짜를 문자열로 변환하거나 더 이상 조작하고 싶지 않습니다. 해당 날짜를 문자열로 변환 할 때 (오프셋 또는 dst 등을 추가하는 것과 같은) 자바 스크립트가 예상치 못한 일을 할 수 있거나 내가 틀렸을 수 있다고 걱정하기 때문입니다.
문서의 isSame () 샘플
moment('2010-10-20').isSame('2010-10-20');
또한 하나의 문으로 결합 된 isSame () 및 isAfter () 같은 것을 찾고 있습니다.
moment.js 만 사용하여 비교해야합니다. 일반 자바 스크립트 날짜 비교를 제안하지 마세요.
답변
문서는 세분성을 지정하기 위해 두 번째 매개 변수를 전달한다는 것이 매우 분명 합니다.
단위를 밀리 초 이외의 단위로 제한하려면 단위를 두 번째 매개 변수로 전달하십시오.
moment('2010-10-20').isAfter('2010-01-01', 'year'); // false moment('2010-10-20').isAfter('2009-12-31', 'year'); // true
두 번째 매개 변수는 검사 할 단일 값이 아니라 정밀도를 결정하므로 day를 사용하면 년, 월, 일을 검사합니다.
귀하의 경우 'day'
에는 두 번째 매개 변수로 전달 합니다.
답변
그동안 isSameOrAfter
방법을 사용할 수 있습니다 .
moment('2010-10-20').isSameOrAfter('2010-10-20', 'day');
문서 : https://momentjs.com/docs/#/query/is-same-or-after/
답변
제 경우에는 두 날짜를 비교하기 위해 다음 코드를 수행했습니다.
var date1 = "2010-10-20";
var date2 = "2010-10-20";
var time1 = moment(date1).format('YYYY-MM-DD');
var time2 = moment(date2).format('YYYY-MM-DD');
if(time2 > time1){
console.log('date2 is Greter than date1');
}else if(time2 > time1){
console.log('date2 is Less than date1');
}else{
console.log('Both date are same');
}
<script src="https://momentjs.com/downloads/moment.js"></script>
답변
startOf('day')
방법을 사용 하여 날짜 만 비교할 수 있습니다.
예 :
var dateToCompare = moment("06/04/2015 18:30:00");
var today = moment(new Date());
dateToCompare.startOf('day').isSame(today.startOf('day'));