Проверьте, соответствует ли дата, введенная пользователем текущей датой или будущей датой
Я просматривал сеть, чтобы найти функцию 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
}
}