2014-01-14 3 views
0

JavaScript에서 Date 객체가 있고 정확한 날짜 수를 정수와 같이 발견해야합니다 (당시와 현재 날짜 사이). 같은 달에있는 경우이 작업을 수행하는 방법을 알고 있지만 과거의 모든 날짜에 정상적으로 작동해야합니다. 같은 육체적 인 날 (자정 이후) 인 경우 0, 가장 최근 자정 (이전 신체 일) 이전 인 경우 1 등이 표시되어야합니다. 자정은 24 시간이 아닌 새로운 날을 여행합니다. 나는이 글을 직접 써 보았지만, 한 달의 날짜 수가 바뀌면서 문제가되었다. Date 객체와 현재 시간은 이미 현지 시간대에 있어야하므로 여기에서 시간대는 중요하지 않습니다.JavaScript 날짜 객체와 현재 날짜 사이의 일 수를 얻습니다.

답변

1

시작 시간과 종료 시간의 차이를 계산합니다.

function calc(begin, end) { 
    //suppose begin, end are two Date Object to calc 
    var diffmsec = end.getTime() - begin.getTime(); 
    var diffday = Math.floor(diffmsec/(3600*24*1000)); 
    var remainder = diffmsec % (3600*24*1000); 
    var beginDayTime = begin.getHours()*3600*1000 + begin.getMinutes()*60*1000 
        + begin.getSeconds()*1000 + begin.getMilliseconds(); 
    //if [beginDayTime] + [remainder] > 1 day, [diffday]++ 
    if (beginDayTime + remainder > 24*3600*1000){ 
     diffday++; 
    } 
    return diffday; 
} 
0
function parseDate(dateString) { 
var mmddyy = dateString.split('/') 
return new Date(mmddyy [2], mmddyy [0]-1, mmddyy [1]);} 


function daydiff() { 
return (parseDate($('#second').val())-parseDate($('#first').val()))/(1000*60*60*24)} 

alert(Math.floor(daydiff())); 
0
/* 2014-01-15, 11:00 */ 
var date = new Date(2014, 0, 15, 11, 0); 
var today = new Date(); 
Math.abs(Math.floor((date - today)/(1000*60*60*24)))