Javascript Date Object Сравнение со скрытым значением - PullRequest
1 голос
/ 18 января 2012

Я одержимо читал в SO, как выполнить сравнение объектов даты в Javascript.Есть несколько действительно хороших идей и указателей, но, похоже, просто не могу получить никакой радости.

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

Вот мой сценарий.Об ошибках в консоли Chrome не сообщается;он просто не хочет сравнивать даты, которые мне нужны.

        var date2 = new Date();
        $("select[name=sanctionDateStart_hidden]").change(function () {
            if ($("select[name=sanctionDateStart_hidden]").getTime() == date2.getTime())
            alert("yayayayaya");
        });

Цените любые идеи, которыми кто-то хочет поделиться.

РЕДАКТИРОВАТЬ: Вот что привело к решению моей проблемы, просто опубликовав это на тот случай, если кто-то другой сможет использовать это.Спасибо посту ниже, чтобы помочь мне двигаться в правильном направлении.

var date2 = new Date();
$("#sanctionDateStart").datepicker({
altField: "#sanctionDateStart_hidden", 
altFormat: "yy-mm-dd", 
minDate: new Date()
}).datepicker("setDate", "{$data.sanctionDateStart}").change(function () {
$('#sanctionDateEnd').datepicker('option', 'minDate', $(this).datepicker('getDate'));
if ($("#sanctionDateStart").datepicker("getDate").getFullYear() == date2.getFullYear()
&& $("#sanctionDateStart").datepicker("getDate").getMonth() == date2.getMonth()
&& $("#sanctionDateStart").datepicker("getDate").getDate() == date2.getDate())
{
alert ('Todays Date');  
}
});

1 Ответ

2 голосов
/ 18 января 2012

Javascript Дата на самом деле время, которое включает в себя текущую дату, а также часы, минуты, секунды и миллисекунды. Так что это редко будет соответствовать дате, выбранной сборщиком дат

var date2 = new Date();
var onlyDateWithoutTime = new Date( date2.getFullYear()
             , date2.getMonth() , getDate() , 0,0,0,0);

Используйте onlyDateWithoutTime в своих сравнениях.

Или сделать

var date2 = new Date();
  var pickedDate = $("select[name=sanctionDateStart_hidden]").getTime();

  if ( pickedDate.getFullYear() == date2.getFullYear() 
       &&  pickedDate.getMonth() == date2.getMonth()
       &&  pickedDate.getDate() == date2.getDate() )
  {
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...