Я пытаюсь сравнить две даты, например, сегодняшнюю дату (20/12/2016
) с датой со следующего года (01/01/2017
). Код работает нормально, если RenewalDate
для этого года, например 22/12/2016
. Это только кажется, если дата на следующий год, что он не признает, что сегодня не больше, чем эта датаСравнение двух дат с разными годами
var RenewalDate = new Date(result.RenewalDate);
var month = RenewalDate.getMonth()+1;
var year = RenewalDate.getFullYear();
if(day<10){
day='0'+day
}
if(month<10){
month='0'+month
}
var RenewalDate = day+'/'+month+'/'+year;
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd
}
if(mm<10){
mm='0'+mm
}
var today = dd+'/'+mm+'/'+yyyy;
if(today > RenewalDate)
{
alert("Date is greater than today");
}
else
{
alert("Date is less than today");
}
Почему вы не создаете объект даты из этих двух дат? – rahulsm
просто создайте два объекта даты. 'new Date()' и 'new Date ('1/1/2017')' и сравните с условием if –
Сравнение dd/mm/yyyy как строки также потерпит неудачу, если этот день будет позже, например, 01/12/2016 до 02/01/2016. Если вы не хотите создавать 'Date', тогда форматируйте свои строки даты в формате ansi, то есть:' var today = yyyy + mm + dd' и сравните. –