-1

我有一个输入表格,我可以在其中允许今天的日期和未来的日期,但不能允许昨天和前几天。我需要在客户端使用 java-script 进行此验证。

var futuredate = new Date($("#Deadline").val());
var today = new Date();

这给了我与时间的约会。Mon Nov 04 2013 00:00:00 GMT+0530 (India Standard Time) 我只想比较日期,因为用户输入今天的日期输入的日期是:Fri Apr 05 2013 00:00:00 GMT+0530 (India Standard Time) 来自新日期()的当前日期:Fri Apr 05 2013 16:53:00 GMT+0530 (India Standard Time)

我尝试使用sethours()它在当月工作得很好,但是当它以数字形式转换日期时,当输入的日期是上个月或之前的任何月份时,它会产生问题。例如:输入的日期 date is23/3/2013和 today is5/4/2013它认为输入的日期是有效的。

var futuredate = new Date($("#Deadline").val()).setHours(0, 0, 0, 0);
var today = new Date().setHours(0, 0, 0, 0);
if (futuredate >= today) {
   alert("Valid");
}
else if (futuredate < today) {
   alert("InValid");
}
4

2 回答 2

2

尝试以下操作,它使用一个小函数将您的日期字符串解析为日期对象,然后再使用setHours(). 如果您的字符串格式为 dd/mm/yyyy 或 dd-mm-yyyy,这将起作用。

var futuredate = parseDate(input).setHours(0, 0, 0, 0);
var today = new Date().setHours(0, 0, 0, 0);
if (futuredate >= today) {
   alert("Valid");
}
else if (futuredate < today) {
   alert("InValid");
}

//function to return a date object from the date string passed to it
function parseDate(input) {
    var parts = input.match(/(\d+)/g);
    return new Date(parts[2], (parts[1]-1), parts[0]);
}
于 2013-04-05T11:15:54.450 回答
0

只需拆分日期并设置日期功能概念。使用这种方式我们可以轻松比较日期

 var a =futuredate.split('/');
 var b =today.split('/');
 var date1 = new Date(a[2],a[1],a[0]);
 var date2 = new Date(b[2],b[1],b[0]);

if (date1 >= date2) {
   alert("Valid");
}
else if (date1 < date2) {
   alert("InValid");
}
于 2013-04-05T11:27:45.620 回答