我有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
答案 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])
);