如何比较两种不同格式的javascript中的日期?

时间:2014-12-17 08:30:31

标签: javascript date data-conversion

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

4 个答案:

答案 0 :(得分:3)

您可以简化代码。要从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>

答案 1 :(得分: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对象转换为毫秒。

答案 2 :(得分:0)

比较两个日期的最佳方法是使用相同的对象实例化它们,在这里你必须使用Date对象。

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

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

答案 3 :(得分:0)

我建议使用moment js 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/