Получение даты сегодня, вчера и следующего дня и переключаться между

Я работаю над сборщиком даты, сборщик даты должен состоять из трех частей

PREV DAY            TODAY             NEXT DAY

TODAY изначально показывает сегодняшнюю дату, но если пользователь нажимает на следующий день, она будет изменена на дату следующего дня.

Например,

< 25th Jan 2018               26th Jan 2018           27th Jan 2018 >

Когда они нажимают "27 января 2018 года", три части должны измениться таким образом

< 26th Jan 2018               27th Jan 2018           28th Jan 2018 >

Я использую Moment JS и сделал это до сих пор:

<div class="tracker-day-picker">
    <div class="adjacent-day previous-day"><span>Prev</span></div>
    <div class="day current-day"><span>Current</span></div>
    <div class="adjacent-day next-day"><span>Next</span></div> 
</div>

И код JavaScript:

$(document).ready(function(){
  var currentDate = moment();

  tracker_picker_update( currentDate );

  $(".previous-day").on("click", function(){
    currentDate = currentDate.subtract(1, "day");
    tracker_picker_update( currentDate );
  });

  $(".next-day").on("click", function(){
    currentDate = currentDate.add(1, "day");
    tracker_picker_update( currentDate );
  });

});


function tracker_picker_update( currentDate ) {
  var tracker_picker = $(".tracker-day-picker");

  // Set current Date
  tracker_picker.find(".current-day span").text( currentDate.format("DD MMM Y") );

  // Set previous Date
  tracker_picker.find(".previous-day span").text( currentDate.subtract(1, "day").format("DD MMM Y") );

  // Set Next Date
  tracker_picker.find(".next-day span").text( currentDate.add(1, "day").format("DD MMM Y") );

  return true;
}

В какой-то части это работает правильно, если мне нравится previous-day элемент работает правильно, текущий день обновляется с указанием даты и previous-day элемент день, предшествующий дате нажатия, обновляется.

Проблема происходит в next-day элемент.

Вот пример: http://jsbin.com/yejoful

1 ответ

Решение

Объект Moment изменчив, поэтому при использовании add а также subtract Вы изменяете значение исходного объекта.

Вы можете клонировать моментальный объект, прежде чем изменять его значение, используя clone():

Все моменты изменчивы. Если вы хотите клонировать момент, вы можете сделать это неявно или явно.

призвание moment() на мгновение будет клонировать его.

Кроме того, вы можете позвонить moment#clone клонировать момент.

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