Javascript дата, что учитывать при сравнении месяцев? - PullRequest
0 голосов
/ 23 апреля 2020

Сравните даты, и если конечная дата принадлежит следующему месяцу, верните логическое значение.

Пример

startdate = 15 января 2020 года enddate = 02 февраля 2020 года

Вывод: enddate это будущий месяц

начальная дата = 15 января 2020 года конечная дата = 27 января 2020 года

Вывод: конечная дата не является будущим месяцем.

начальная дата = 15 января 2020 года конечная дата = 23 марта 2020 года

Вывод: окончание - будущий месяц.

Код

const startdate = new Date();
const enddate = new Date(this.request.periodEndDate);
const enddateMonth = enddate.getMonth();
const startdatemonth = startdate.getMonth();

if(enddateMonth > startdatemonth) {
    console.log("future month")
}

1 Ответ

0 голосов
/ 23 апреля 2020

const isFutureMonth = (startDate, endDate) => {
    const getYearMonth = date => date.getYear() * 100 + date.getMonth();

    const start = getYearMonth(startDate);
    const end = getYearMonth(endDate);

    return end > start;
}


console.log(isFutureMonth(new Date('2020-01-15'), new Date('2020-01-27')));

console.log(isFutureMonth(new Date('2020-01-15'), new Date('2020-02-27')));

Пришел к этому. Кажется, работает просто отлично.

Умножение на 100 необходимо, чтобы избежать просчетов, где год = 2019, месяц = ​​2 будет равен год = 2020, месяц = ​​1, что кажется достаточно хорошим для сравнения, если это будущее месяц. Я был бы счастлив, доказал, что был неправ, если это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...