Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证日期是否早于当前日期_Javascript_Date - Fatal编程技术网

Javascript 验证日期是否早于当前日期

Javascript 验证日期是否早于当前日期,javascript,date,Javascript,Date,使用这个函数,我得到了7天的差异;如何测试日期是否早于当前日期 function validateDate() { pickedDate = Date.parse("05-Jul-2012".replace(/-/g, " ")); todaysDate = new Date(); todaysDate.setHours(0, 0, 0, 0); dateDifference = Math.abs(Number(todaysDate) - pickedDate);

使用这个函数,我得到了7天的差异;如何测试日期是否早于当前日期

function validateDate() {
    pickedDate = Date.parse("05-Jul-2012".replace(/-/g, " "));
    todaysDate = new Date();
    todaysDate.setHours(0, 0, 0, 0);
    dateDifference = Math.abs(Number(todaysDate) - pickedDate);
    //7 Days=604800000ms
    if (dateDifference > 604800000) {
        return false;
    } else {
        return true;
    }
}

您可以根据需要直接比较两个日期

return pickedDate <= todaysDate
试试这个功能

function checkDate(day, month, year)
{
    var regd = new RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})\$");

    var date = month + "/" + day + "/" + year;
    var date = new Date(date);
    var today = new Date();

    var vdob = regd.test(date);

    var err_txt = "" ;

    if(date.getDate() != day || (date.getTime()>today.getTime()))
    {
            err_txt+=("Please select a valid Date.\n")
    }

    return (err_txt);
}
对于日期比较(无时间):


以下内容将检查日期是否早于今天:

function isBeforeToday(){
  var today = new Date((new Date()).toString().substring(0,15));
  return date < today;
}
函数isBeforeToday(){
var today=新日期((新日期()).toString().substring(0,15));
返回日期<今天;
}
这是通过从相应的日期字符串中剥离所有时间信息后创建新的日期对象来实现的:


2018年3月6日星期二16:33:15 GMT-0500(美国东部时间)
->
2018年3月6日星期二00:00:00 GMT-0500(美国东部时间)

您可以使用“
if”(this.dateString1.getFullYear()我问这个问题是因为我试图检查从后端获取的Java.util.Date是否在今天的日期之后

最后,我找到了一个非常简单的解决方案-通过比较毫秒,如下所示:

  isAfterToday(date) {
    return new Date(date).valueOf() > new Date().valueOf();
  }

函数
valueOf()
已记录在案。

另一种方法是使用更干净的代码,如果您正在使用
moment.js
或愿意在您的项目中使用它,则如下所示:

const dateToCheck = "2021-02-25";
return moment().isBefore(dateToCheck);

我不理解这个问题。如果用户在当前日期之前输入日期,那么我必须生成警报。请看今天的日期是2012年7月5日如果他选择2012年7月4日或7月4日之前,那么我必须在今天生成警报
todaysDate.setHours(0,0,0,0,0);
在您的代码中有什么用?我选择的日期是这种格式的“dd MMM yyyy”如何以“dd-MMM-yyyy”格式转换今天的日期如果选择今天的日期,则还将获取警报查看是否(pickedDate>todaysDate){return true;}否则{alert(“失效日期”);return false;}它还将检查毫秒数。因此会显示警报。不,我只需检查日期您可以尝试JavaScript GetMillimes()方法如果所比较的日期早于同一日期怎么办?理论上,如果在晚上8点运行此程序,而所比较的日期是下午2点,则返回true。@BarryChapman您完全正确!此代码仅限于比较整数值(根据作者的要求)。比较日期时间将是一个不同的用例,可以通过标准日期比较(dateA>dateB)来解决。这对于日期比较很有用,因为我没有检查
datetimes
,所以谢谢!
function isBeforeToday(){
  var today = new Date((new Date()).toString().substring(0,15));
  return date < today;
}
function validateDate(date) {
    //get start of day using moment.js
    const now = Moment().startOf('day').toDate();
    if (date < now) {
        return false; //date is before today's date
    } else {
        return true; //date is today or some day forward
}
if(this.dateString1.getFullYear() <= this.dateString2.getFullYear() )//check the year
  { 
    // console.log("date1+date2"+this.dateString1.getFullYear()+this.dateString2.getFullYear())
    if(this.dateString1.getMonth() <= this.dateString2.getMonth())//check the month
      {
        // console.log("date1+date2"+this.dateString1.getMonth()+this.dateString2.getMonth())
        if(this.dateString1.getDate() < this.dateString2.getDate())//check the date
        this.toastr.error("Project Start Date cannot be Previous Date");
          return;
      }
  }
  isAfterToday(date) {
    return new Date(date).valueOf() > new Date().valueOf();
  }
const dateToCheck = "2021-02-25";
return moment().isBefore(dateToCheck);