Проверьте, соответствует ли дата, введенная пользователем текущей датой или будущей датой

Я просматривал сеть, чтобы найти функцию javascript который может проверить, является ли дата, введенная пользователем текущей датой или будущей датой, но я не нашел подходящего ответа, поэтому я сделал это сам. Удовлетворение Если это может быть достигнуто с помощью одного кода строки.

 function isfutureDate(value) 
    {    
    var now = new Date;
    var target = new Date(value);

    if (target.getFullYear() > now.getFullYear()) 
    {
        return true;
    }
    else if(target.getFullYear() == now.getFullYear()) 
    {
    if (target.getMonth() > now.getMonth()) {
    return true;
    } 
    else if(target.getMonth() == now.getMonth())
    {
    if (target.getDate() >= now.getDate()) {
        return true;
    }
    else
    {
        return false
    }
    }


    }

   else{
    return false;
    }
}   

Ответ 1

Вы можете сравнить две даты, как если бы они были целыми:

var now = new Date();
if (before < now) {
  // selected date is in the past
}

Оба они должны быть Date.

Первый поиск в google приводит к следующему: Проверить, есть ли дата в прошлом Javascript

Однако, если вам нравится программирование, вот подсказка:

  • Дата, отформатированная как YYYY-MM-DD, может быть чем-то вроде 28-12-2013.
  • И если мы изменим дату, то это 2013-12-28.
  • Мы удаляем двоеточия, и мы получаем 20131228.
  • Мы установили другую дату: 2013-11-27, которая, наконец, 20131127.
  • Мы можем выполнить простую операцию: 20131228 - 20131127

Enjoy.

Ответ 2

здесь версия, которая сравнивает только дату и исключает время.

Машинопись

const inFuture = (date: Date) => {
    return date.setHours(0,0,0,0) > new Date().setHours(0,0,0,0)
};

ES6

const inFuture = (date) => {
    return date.setHours(0,0,0,0) > new Date().setHours(0,0,0,0)
};

Ответ 3

попробуйте этот

function isFutureDate(idate){
var today = new Date().getTime(),
    idate = idate.split("/");

idate = new Date(idate[2], idate[1] - 1, idate[0]).getTime();
return (today - idate) < 0 ? true : false;
}

Демонстрационный

console.log(isFutureDate("02/03/2016")); // true
console.log(isFutureDate("01/01/2016")); // false

Ответ 4

Версия ES6 с приемлемой опцией будущего.

Я сделал эту маленькую функцию, которая позволяет использовать некоторое пространство для маневра (например, если поступают данные с немного быстрых часов).

Требуется объект Date и toleranceMillis, что является допустимым числом секунд в будущем (по умолчанию 0).

const isDistantFuture = (date, toleranceMillis = 0) => {
    // number of milliseconds tolerance (i.e. 60000 == one minute)
    return date.getTime() > Date.now() + toleranceMillis
}

Ответ 5

попробуйте это

function IsFutureDate(dateVal) {
    var Currentdate = new Date();
        dateVal= dateVal.split("/");
    var year = Currentdate.getFullYear();
    if (year < dateVal[2]) {
        return false;//future date

    }        
    else {
        return true; //past date
    }

}