2015-01-14 3 views
0

Извините за вопрос n00b, но мой js/jq ужасен. Я потратил большую часть своего дня на это, но я до сих пор не могу понять последний бит.Сравните дату с датой (dateString) в инструкции if/else

Мне нужно ввести дату, рассчитать дату 180 дней с введенной даты и сравнить ее с dateString (обозначенным как «крайний срок» в приведенном ниже коде). Все работает нормально, за исключением инструкции if/else в конце. Я чувствую, что это простое решение, но я просто не вижу его. В настоящее время он просто выводит результат выражения else.

HTML

<h2>click Go! to add 180 days:</h2> 
<p>Add 180 to: 
<input id="indexDate" type="text" /> 
<input type="button" onclick="getdate()" value="Go!" /> 

<p>Result Date: 
<span id="date_180"></span> 
<span id="answer"></span></p> 

JS/JQ

$(document).ready(function() { 
    $('#indexDate').datepicker({changeYear: true}).datepicker('setDate', '01/01/2004'); 
}); 

function getdate() { 

    var tt = document.getElementById('indexDate').value; 
    var date = new Date(tt); 
    var newdate = new Date(date); 
    var deadline = new Date(11/03/2014); 

    newdate.setDate(newdate.getDate() + 180); 

    var dd = newdate.getDate(); 
    var mm = newdate.getMonth() + 1; 
    var y = newdate.getFullYear(); 

    var formattedDate = mm + '/' + dd + '/' + y; 
    document.getElementById('date_180').innerHTML = formattedDate; 

    if (formattedDate<deadline) { 
    document.getElementById("answer").innerHTML = "Yay!"; 
    } else { 
    document.getElementById("answer").innerHTML = "Boo!"; 
    }  
}  

ответ

0

Попробуйте это в вашем случае условие

if(new Date(formattedDate) < deadline){ 
    document.getElementById("answer").innerHTML = "Yay!"; 
    } else { 
    document.getElementById("answer").innerHTML = "Boo!"; 
    }  

Если не работает попытка на сегодняшний день формат любит

var formattedDate = new Date(Year,Month,Day);//Date objectref

+0

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

0

Я думаю, что это проблема с форматами дат.

Добавить

console.log(deadline); 
console.log(formattedDate); 

до блока, если и посмотреть в консоли. Что он говорит?

+0

Вы были верны. Проблема заключалась в формате дат. Я установил дату «крайнего срока», чтобы соответствовать формату даты даты javascript Year, Month, Day. Спасибо вам за помощь! Я очень ценю это! – booboobear28

+0

Нет проблем! :-) –

Смежные вопросы