如何在jQuery中解析日期字符串并检查它是否在过去

AJF*_*DIA 1 javascript jquery date

我需要检查日期是否已经过去.这就是我到目前为止所拥有的.JS在这里.

var date = "09/12/2013";
var d = new Date();
var month = d.getMonth() + 1;
var day = d.getDate();
var todaysDate = +(('' + day).length < 2 ? '0' : '') + day + '/' + (('' + month).length < 2 ? '0' : '') + month + '/' + d.getFullYear();

if (date < todaysDate) {
    alert("in the past");
} else {
    alert("in the future");
}
Run Code Online (Sandbox Code Playgroud)

目前,它说的是过去的日期,应该是将来的日期.我知道我需要将字符串解析为日期,但不知道如何.

救命?

T.J*_*der 5

使用该输入格式,您不能使用字符串比较,因为最不重要的值在左侧.注意:我担心这个日期是2013年12月9日.如果你在2013年9月12日做美国式的事情,那么你必须将索引调整到parts下面.

可以撤消字段:

var date = "09/12/2013";
var parts = date.split('/');
date = parts[2] + "/" + parts[1] + "/" + parts[0];
Run Code Online (Sandbox Code Playgroud)

...然后进行字符串比较(确保以相同的顺序构建"今天"的字符串 - 年/月/日).

如果你打算这样做,你可以继续完成这项工作

var date = "09/12/2013";
var parts = date.split('/');
var date = new Date(parseInt(parts[2], 10),     // year
                    parseInt(parts[1], 10) - 1, // month, starts with 0
                    parseInt(parts[0], 10));    // day
if (date < new Date()) {
    // It's in the past, including one millisecond ago
}
Run Code Online (Sandbox Code Playgroud)

...但是当然,如​​果你不希望表达式在一毫​​秒之前成立,你的字符串方法就可以了.