如何验证日期是否从今天开始<;javascript>;

如何验证日期是否从今天开始<;javascript>;,javascript,date,Javascript,Date,我有这个功能,它包括验证用户输入的日期。到目前为止,我只检查日期格式是否正确(dd/mm/yyyy) 但是,我还想检查输入的日期是否是今天的日期,而不是以前或将来的日期 我想到了类似于var currentdate=new Date()什么是DATESETION的输入类型?@ USE2181397。它是一个带有文本类型的简单输入。你会考虑使用一个库吗?对于这类事情有很多有用的函数。希望您认识到'31/04/2016'和'29/02/2017'都是无效的日期,但会传递您的正则表达式…@MattJo

我有这个功能,它包括验证用户输入的日期。到目前为止,我只检查日期格式是否正确(dd/mm/yyyy)

但是,我还想检查输入的日期是否是今天的日期,而不是以前或将来的日期

我想到了类似于
var currentdate=new Date()
function validate(){
var date = $("#dateentry").val();

if (/^(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[0-2])\/(19|20)\d{2}$/.test(date)){
   $("#msg").html("The date format is correct");
 }else{
   $("#msg").html("The date format must be dd/mm/yyyy");
 }

}

我想你唯一的选择就是和今天的日期比较

var todaysDate = new Date();
if(new Date(date).setHours(0,0,0,0) >= todaysDate.setHours(0,0,0,0));
{
    $("#msg").html("Date should not be prior or greater that current date");
}

我想你唯一的选择就是和今天的日期比较

var todaysDate = new Date();
if(new Date(date).setHours(0,0,0,0) >= todaysDate.setHours(0,0,0,0));
{
    $("#msg").html("Date should not be prior or greater that current date");
}

如果使用的是
input type=“date”
,则可以禁用以前的日期,从而避免任何验证

希望这段代码有用

HTML


如果您使用的是
input type=“date”
,则可以禁用以前的日期,从而避免任何验证

希望这段代码有用

HTML


您应该始终手动解析日期字符串,特别是如果它们不是ECMA-262(ISO 8601扩展格式)中包含的格式

下面是解析和验证d/m/y格式日期的函数。然后,您可以通过创建今天的日期、将时间设置为00:00:00并比较以下各项来检查是否为今天:

function parseDMY(s){
变量b=(''| | s).match(/\d+/g);
var d=新日期(b[2]| | 0,(b[1]| | 0)-1,b[0]);
返回d&d.getMonth()==b[1]-1?d:新日期(NaN);
}
var today=新日期();
今天,设定时间(0,0,0,0);
console.log('今天是:'+今天);
//2016年6月15日返回真值
var s=‘2016年6月15日’;

console.log('Is today'+s+'?'+(parseDMY(s).getTime()==today.getTime())
您应该始终手动解析日期字符串,特别是如果它们不是ECMA-262(ISO 8601扩展格式)中包含的格式

下面是解析和验证d/m/y格式日期的函数。然后,您可以通过创建今天的日期、将时间设置为00:00:00并比较以下各项来检查是否为今天:

function parseDMY(s){
变量b=(''| | s).match(/\d+/g);
var d=新日期(b[2]| | 0,(b[1]| | 0)-1,b[0]);
返回d&d.getMonth()==b[1]-1?d:新日期(NaN);
}
var today=新日期();
今天,设定时间(0,0,0,0);
console.log('今天是:'+今天);
//2016年6月15日返回真值
var s=‘2016年6月15日’;

控制台。日志(‘今天是+S+’?’+(PDESEMY(S)。GETTIMEY()=今天。GETTIMEY()))< /COD>什么是DATESETION的输入类型?@ USE2181397。它是一个带有文本类型的简单输入。你会考虑使用一个库吗?对于这类事情有很多有用的函数。希望您认识到
'31/04/2016'
'29/02/2017
'都是无效的日期,但会传递您的正则表达式…@MattJohnson-“到目前为止,我只检查日期格式是否正确”。;-)什么是DeaEnter的输入类型?@ USE2181397。它是一个带有文本类型的简单输入。您会考虑使用库吗?对于这类事情有很多有用的函数。希望您认识到
'31/04/2016'
'29/02/2017
'都是无效的日期,但会传递您的正则表达式…@MattJohnson-“到目前为止,我只检查日期格式是否正确”。;-)您建议使用日期构造函数解析格式为d/m/y的字符串,这不是一个好主意。它不会提供预期的结果,除非日期和月数相同。您建议使用日期构造函数解析d/m/y格式的字符串,这不是一个好主意。它不会提供预期的结果,除非日期和月数相同。在不支持输入类型日期的浏览器中?此外,toISOString以GMT时区返回日期,因此该日期可能与主机日期不同。在不支持输入类型date的浏览器中?此外,toISOString以GMT时区返回日期,因此该日期可能与主机日期不同。
var dateTime = document.getElementById("dateTime").value;
var today = new Date().toISOString().split('T')[0];
document.getElementById("dateTime").setAttribute('min', today);