将新日期与mySql格式的字符串中的日期进行比较

时间:2014-02-04 08:24:41

标签: javascript mysql format compare

我有var a = new Date()var b = "21:36:40 12/01/2013“。

a是当前日期

b是来自mySql数据库的字符串日期

我需要:

If a - b > 1 year alert("old") else alert ("new").

我试图拆分字符串,但它变得复杂了.. (对不起,如果我没有正确格式化代码)

            var a = new Date(); 
        var b = "21:36:40 12/01/2013"

        var c = b.split(" "); 
        var d = c[0]; 
        var e = d.split(":"); 
        var f = e[0];
        var g = e[1]; 
        var h = e[2];   
        var i = c[1]; 
        var j = i.split("/"); 
        var k = j[0]; 
        var l = j[1];
        var m = j[2]; 
        var m1 = a.getFullYear(); 
        var k1 = a.getDate(); 
        var l1 = a.getMonth(); 
        var e1 = a.getHours(); 
        var g1 = a.getMinutes();
        var h1 = a.getSeconds(); 

    function myFunction4() {
        if (m1 > m && l1 > l && k1 > k) { 
        alert("old");
        }
        else if (m1 > m && l1 == l && k1 <= 12) {
}
        alert("old");
        }   
        else {
        alert("new");
        }
    }
    myFunction4(); // incomplete

3 个答案:

答案 0 :(得分:1)

您可以尝试按时间戳比较:

if (+(new Date('21:36:40 12/01/2013')) > +(new Date())){
    alert('new')
} else{
    alert('old')
}

答案 1 :(得分:0)

您可以使用它的构造函数创建日期对象,如下所示:

var your_date = new Date("21:36:40 12/01/2013");
var now       = new Date();
if ( now > your_date) {
 ....
}

答案 2 :(得分:0)

您可以使用正则表达式来简化字符串搜索/拆分算法:

var b = "21:36:40 12/01/2013"
var reg = /(\d{2}):(\d{2}):(\d{2}) (\d{2})\/(\d{2})\/(\d{4})/;
var dateArray = reg.exec(b); 
var dateObject = new Date(
    (+dateArray[6]),
    (+dateArray[5])-1, // Careful, month starts at 0!
    (+dateArray[4]),
    (+dateArray[1]),
    (+dateArray[2]),
    (+dateArray[3])
);