Как мы можем получить предыдущие и последующие месяцы с полными днями, непрерывно используя момент js?

У меня есть две кнопки для получения следующих и предыдущих месяцев с полными днями. Я включил момент JS. В настоящее время, когда я нажимаю на следующую кнопку, я получаю декабрь, а дата окончания - 28-е, затем я нажимаю снова, получая тот же месяц, а не январь. Когда я нажимаю на предыдущую кнопку, октябрь получает, затем я нажимаю снова, получая тот же месяц, а не сентябрь.

$('.datepicker__month-button--next').on('click', function () {
    console.log('next');
    console.log(moment().add(1, 'months'));
});

 $('.datepicker__month-button--prev').on('click', function () {
     console.log('prev');
     console.log(moment().subtract(1, 'months'));
 }); 

1 ответ

Решение

Вы можете сделать это, как показано ниже:

var seletedDate = moment(new Date());

$(document).ready(function() {
    alert(seletedDate);
});

$('#next').click(function() {
     var lastDayOfNextMonth = moment(seletedDate.add(1,"M")).endOf('month');
     // Update selected date
     seletedDate = lastDayOfNextMonth;
    alert(seletedDate);
});

$('#pre').click(function() {
    var lastDayOfPreviousMonth = moment(seletedDate.add(-1,"M")).endOf('month');
    // Update selected date
    seletedDate = lastDayOfPreviousMonth;
    alert(seletedDate);
});

Демо онлайн (скрипка)

Другие вопросы по тегам