Подтвердить что ты не робот

Как проверить, соответствует ли дата ввода сегодняшней дате?

У меня есть ввод формы с идентификатором 'date_trans'. Формат для ввода этой даты (который является проверкой на стороне сервера) может быть любым из:

  • дд/мм/гггг
  • дд-мм-гггг
  • гггг-мм-дд
  • гггг/мм/дд

Однако перед отправкой формы я хотел бы проверить, имеет ли поле date_trans дату, равную сегодняшней дате. Хорошо, если указанная дата - это дата клиента (т.е. Использует js), так как я запускаю двойную проверку на сервере.

Я полностью потерял, как выполнить сопоставление даты в jQuery или просто старый javascript. Если это помогает, я использую jquery datepicker

4b9b3361

Ответ 1

Вы посмотрели datejs? (используя соответствующий пакет глобализации для правильного анализа dd/mm/yyyy)

Просто передайте дату в свой метод parse() и сравните с сегодняшней датой.

Ответ 2

Простое сравнение дат в чистом JS должно быть достаточным:

// Create date from input value
var inputDate = new Date("11/21/2011");

// Get today date
var todaysDate = new Date();

// call setHours to take the time out of the comparison
if(inputDate.setHours(0,0,0,0) == todaysDate.setHours(0,0,0,0)) {
    // Date equals today date
}

Здесь рабочий JSFiddle.

Ответ 3

для полноты, взятой из этого решения:

Вы можете использовать toDateString:

var today = new Date();
var isToday = (today.toDateString() == otherDate.toDateString());

нет зависимостей в библиотеке и выглядит более понятным, чем метод setHours(), показанный в предыдущем ответе, imho

Ответ 4

Попробуйте использовать moment.js

moment('dd/mm/yyyy').isSame(Date.now(), 'day');

Вы можете заменить строку "день" на "год, месяц, минута", если хотите.

Ответ 5

function sameDay( d1, d2 ){
  return d1.getUTCFullYear() == d2.getUTCFullYear() &&
         d1.getUTCMonth() == d2.getUTCMonth() &&
         d1.getUTCDate() == d2.getUTCDate();
}

if (sameDay( new Date(userString), new Date)){
  // ...
}

Использование методов UTC * гарантирует, что два эквивалентных дня в разных часовых поясах, совпадающих с одним и тем же глобальным днем, будут одинаковыми. (Не обязательно, если вы разбираете обе даты напрямую, но хорошо подумать.)

Ответ 6

Просто используйте следующий код в javaScript:

if(new Date(hireDate).getTime() > new Date().getTime())
{
//Date greater than today date 
}

Измените условие в соответствии с вашим требованием. Вот одна ссылка для сравнения сравнить в java script

Ответ 7

Date.js - удобная библиотека для управления датами форматирования. Это может помочь в этой ситуации.

Ответ 8

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

var reducedToDay = function(date){return ~~(date.getTime()/(1000*60*60*24));};
return reducedToDay(date1) == reducedToDay(date2)

Тильда преобразует результат деления (см. эту статью о целых делениях)

Ответ 9

TodayDate = new Date();
if (TodayDate > AnotherDate) {} else{}

< = также работает, хотя с =, возможно, оно должно совпадать с миллисекундами.