2014-12-17 3 views
3
function mainFunc() { 
    dueDate = "30/12/2014"; 
    var firstReminderDate = dueDate; 
    var today = new Date(); 
    var firstDate = convertToDate(firstReminderDate); 
    if (today > firstDate) { 
     //send reminder to A 
    } else { 
     // send reminder to B 
    } 
} 

function convertToDate(dateString) { 
    var dateData = dateString.split("/"); 
    var date = new Date(new Date().setFullYear(dateData[0], dateData[1] - 1, dateData[2])); 
    return new Date(date); 
} 

시간이 아닌 두 날짜를 비교해야하며 시간 부분을 제거하고 날짜를 비교하는 방법이 필요합니까? convertToDate()가 매주 "Thu Jan 01 05:30:00 GMT + 05 : 30 1970"을 반환합니까?두 가지 형식으로 자바 스크립트에서 날짜를 비교하는 방법?

+1

인 ISO 포맷 사용 YYYY-MM-DD 새로운 날짜 (dateData [2] + '-'+ dateData [1] + '-'+ dateData [0 ]) – InferOn

+0

dd/mm/yyyy로만 입력됩니다. – atjoshi

+1

날짜 계산/조작? -> [moment.js] (http://momentjs.com/)와 같은 라이브러리를 사용하십시오 :) 날짜가 많은 함정 (형식, 윤년, 일광 절약 시간제 등)이 있습니다. – Andreas

답변

3

코드를 단순화 할 수 있습니다. dd/mm/yyyy에서 날짜를 얻으려면 단순히 /으로 분할하고 결과를 반대로하고 '/'에 합치면 Date을 다른 입력란과 비교하여 유효한 입력 인 yyyy/mm/dd이됩니다. Date. 여기 당신이 Date 객체를 사용해야합니다, 두 날짜가 같은 객체를 실체화하는 것입니다 비교

var report = document.querySelector('#result'); 
 
report.innerHTML += '30/12/2014 => '+ mainFunc('30/12/2014'); 
 
report.innerHTML += '<br>01/12/2014 => '+ mainFunc('01/01/2014'); 
 

 
function mainFunc(due) { 
 
    due = due ? convertToDate(due) : new Date; 
 
    return new Date > due 
 
      ? due +' passed: <b>send reminder to A</b>' 
 
      : due +' not passed: <b>send reminder to B</b>'; 
 
} 
 

 
function convertToDate(dateString) { 
 
    return new Date(dateString.split("/").reverse().join('/')); 
 
}
<div id="result"></div>

0

그냥

function convertToDate(dateString) { 
    var dateData = dateString.split("/"); 
    return +new Date(new Date().setFullYear(dateData[0], dateData[1] - 1, dateData[2])); 
} 

밀리 초 형식으로 반환 또한 var today = +new Date();var today = new Date();을 변경합니다. 이제는 효과가 있습니다. + 여기서 Date 개체를 밀리 초로 변환합니다.

0

가장 좋은 방법을 니펫을 참조하십시오.

function mainFunc(){ 
    var firstDate = new Date(dueDate = "30/12/2014"); 
    today = new Date(); 

    if(today > firstDate){ 
    //... 
    } 
    else{ 
    //... 
    } 
} 
0

자바 스크립트에서 날짜를 구문 분석, 유효성 검사, 조작 및 표시하려면 momentjs lib를 사용합니다. 여기

var firstDate = moment("30/12/2014", "DD/MM/YYYY") 
var today = moment(); 

// Format to Unix Timestamp to compare 
if(today.format('X') > firstDate.format('X')){ 

    //send reminder to A 
}else{ 

    // send reminder to B 
} 

링크 http://momentjs.com/

관련 문제