2012-01-18 3 views
1

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

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

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

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

Оцените любое понимание, которое может заинтересовать.

EDIT: Вот что в итоге решило мою проблему, просто разместив это на случай, если кто-то еще сможет это использовать. Спасибо за сообщение ниже, чтобы помочь мне двигаться в правильном направлении.

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'); 
} 
}); 

ответ

2

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

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()) 
    { 
    } 
Смежные вопросы