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

Javascript 如何解析jQuery中的日期字符串并检查它是否在过去,javascript,jquery,date,Javascript,Jquery,Date,我需要检查一下日期是否在过去。这就是我到目前为止所拥有的 现在它说的是日期是在过去,而应该是在未来。我知道我需要将字符串解析为日期,但不确定如何解析 帮助?对于该输入格式,您不能使用字符串比较,因为最低有效值在左侧。注:我假设日期是2013年12月9日。如果你在2013年9月12日做美国的事情,你必须将指数调整为以下部分 您可以反转字段: var date = "09/12/2013"; var parts = date.split('/'); date = parts[2] + "/" + p

我需要检查一下日期是否在过去。这就是我到目前为止所拥有的

现在它说的是日期是在过去,而应该是在未来。我知道我需要将字符串解析为日期,但不确定如何解析


帮助?

对于该输入格式,您不能使用字符串比较,因为最低有效值在左侧。注:我假设日期是2013年12月9日。如果你在2013年9月12日做美国的事情,你必须将指数调整为以下部分

您可以反转字段:

var date = "09/12/2013";
var parts = date.split('/');
date = parts[2] + "/" + parts[1] + "/" + parts[0];
…然后进行字符串比较,确保按照相同的顺序构造今天的字符串-年/月/日

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

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
}

…但是,当然,如果您不希望表达式在一毫秒前为真,那么字符串方法就可以了。

对于该输入格式,您不能使用字符串比较,因为最不重要的值在左侧。注:我假设日期是2013年12月9日。如果你在2013年9月12日做美国的事情,你必须将指数调整为以下部分

var date = new Date("09/12/2013");
var d = new Date();
console.log(date>d); // true
var date = new Date("09/12/2011");
console.log(date>d); // false
您可以反转字段:

var date = "09/12/2013";
var parts = date.split('/');
date = parts[2] + "/" + parts[1] + "/" + parts[0];
…然后进行字符串比较,确保按照相同的顺序构造今天的字符串-年/月/日

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

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
}

…但是,当然,如果您不希望表达式在一毫秒前为true,那么字符串方法就可以了。

JavaScript的原生日期比较程序只对日期对象有效,而您是在比较字符串。您应该将date解析为一个date对象,然后将其与d进行比较

var date = new Date("09/12/2013");
var d = new Date();
console.log(date>d); // true
var date = new Date("09/12/2011");
console.log(date>d); // false

JavaScript的原生日期比较器仅适用于日期对象,而您正在比较字符串。您应该将date解析为一个date对象,然后将其与d进行比较


并非所有浏览器都能可靠地转换该日期格式。事实上,它也不能被所有人可靠地转换。日期是12月还是9月?这很有效,但日期格式会因地区而异。就我个人而言,我使用了一个日期,比如var date=new Date2012-10-31T00:00:00+13:00;而且效果很好。非常简单的解决方案,谢谢。并非所有浏览器都能可靠地转换日期格式。事实上,它也不能被所有人可靠地转换。日期是12月还是9月?这很有效,但日期格式会因地区而异。就我个人而言,我使用了一个日期,比如var date=new Date2012-10-31T00:00:00+13:00;而且效果很好。非常简单的解决方案,谢谢。