2012-06-26 3 views
1

내가 자바 스크립트에서 다음과 같은 문제에 대한 가장 간결한 해결책을 찾고 있어요 사이에 발생 일수 계산 : 나는 자바 스크립트에서 두 날짜 사이에 발생하는 일 수를 결정하려면두 날짜

합니다. 나는 예를 들어, 일의 날짜 차이를 찾고 있지 않다 :

날짜 1 : 6 월 26 2012 오후 11시 5분

일 2 : 6 월 27 2012 오전 12시 15분

내가 사용하던 다음 코드 줄 :

var days = Math.ceil((date2 - date1)/86400000); 

내 결과가 내가 2 (카운트 6 월 26 6 월 27 일)

+0

무엇 DATE2 Sebas

+0

@ Sebas 내 경우에는 항상 긍정적 인 결과를 얻을 것입니다. – dmck

+0

흠 나는 정말로 혼란 스럽다. 기본적으로 주어진 날짜의 달을 나타내는 2 자리 숫자의 차이 만 원한다. 그래서 차이는 1에서 31로 바뀌지 않습니까? – Sebas

답변

3

날짜의 시간 부분을 제거한 다음 날짜 빼기를 수행하십시오. this jsfiddle 또는 아래의 스 니펫을 참조하십시오.

var d1 = new Date('June 26th 2012 11:05 PM'.replace('th','')); 
var d2 = new Date('June 27th 2012 12:15 AM'.replace('th','')); 

// remove the time portion, set the dates to midnight 
d1.setHours(0,0,0,0); 
d2.setHours(0,0,0,0); 

var diff = Math.ceil((d2 - d1)/86400000) + 1; 

console.log(diff); 

+0

이것이 유일한 방법이라고 생각합니다. 날짜를 사용하는 다른 방법이 있는지 알아보기 위해 계산을위한 두 개의 임시 날짜 개체를 만들지 않도록 할 수있었습니다. 하지만이 작품은 ... 고마워. – dmck

+0

여전히 올바르지 않습니다. 'Math.abs()'를 실행해야합니다. 'd1'과'd2'를 교환하면 대답은 0이됩니다. – Jashwant

+0

btw +1 내 오류를 캐싱하고 멋진 코드를 제공합니다 :) – Jashwant