我有一个参赛表格,我可以在其中提供今天的日期和未来日期,但不能允许昨天和前几天。我需要在客户端使用java脚本进行验证。
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()
它在当月工作正常,但是当它在数字中转换日期时,如果输入的日期是之前或之前的月份,则会产生问题。
例如:输入日期为23/3/2013
,今天为5/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");
}
答案 0 :(得分:1)
尝试以下操作,它使用一个小函数在使用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]);
}
答案 1 :(得分: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");
}