簡體   English   中英

如何比較兩種不同格式的javascript中的日期?

[英]How to compare dates in javascript with two different format?

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”?

您可以簡化代碼。 要從dd/mm/yyyy獲取日期,只需拆分/ ,反轉結果並將其加在'/'上即可得到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> 

只需以毫秒格式返回即可

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

並且還改變var today = new Date(); to var today = +new Date(); 現在它應該工作。 +這里將Date對象轉換為毫秒。

比較兩個日期的最佳方法是將它們與同一個對象進行實例化,這里必須使用Date對象。

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

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

我將建議momentjs lib在JavaScript中解析,驗證,操作和顯示日期。

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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM