Сравните день, месяц и год - PullRequest
6 голосов
/ 03 января 2012

Добрый день в моем часовом поясе.

Я хочу сравнить две даты, одна из которых вставлена ​​пользователем, а другая - текущим. Фрагмент кода:

    var dateString = "2012-01-03"
    var date = new Date(dateString);
    date < new Date() ? true : false;

Это возвращает true, я думаю, что под капотом оба объекта Date преобразуются в миллисекунды, а затем сравниваются, и если так, то объект "Today" больше из-за часов и минут. сравнивайте даты только по дню, месяцу и году. Каков наилучший подход? Создать новый объект Date и затем сбросить часы, минуты и миллисекунды до нуля перед сравнением? Или извлеките день, месяц и год из объекта даты и сделайте сравнение? Есть ли лучший подход?

Спасибо заранее С наилучшими пожеланиями. С новым годом

Ответы [ 2 ]

19 голосов
/ 03 января 2012

Установите временной интервал вашей созданной даты в нули .

var d = new Date();
d.setHours(0,0,0,0);
0 голосов
/ 03 января 2012

Поскольку он находится в формате гггг-мм-дд, вы можете просто построить текущий объект гггг-мм-дд с даты и выполнить обычное сравнение строк:

var currentDate = new Date();
var year = currentDate.getFullYear();
var month = currentDate.getMonth()+1;
if (month < 10) month = "0" + month;
var day = currentDate.getDate();
if (day < 10) day = "0" + day;
currentDate = year + "-" + month + "-" + day;

var dateString = "2012-01-03"
var compareDates =  dateString < currentDate ? true : false;
document.write(compareDates);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...