показать 2 недели в прошлом ( vue.js )

#javascript #date #vue.js

#javascript #Дата #vue.js

Вопрос:

Привет, у меня есть этот скрипт ( vue.js ) я вижу, что следующие 2 недели работают хорошо, я должен изменить то, что я вижу 2 недели в прошлом.. Спасибо

 methods: {
    // Get all days without sunday:
    dates(index) {
      var week = new Array();
      let current = new Date();
      // Starting Monday not Sunday
      current.setDate((current.getDate() - current.getDay()  1));
      for (var i = 0; i < 13; i  ) {
        let date = new Date(current);
        week.push(moment(date).format('DD.MM.YY'));
        current.setDate(current.getDate()  1);
      }
      return week[index];
    },
  

Комментарии:

1. Ваш вопрос не очень ясен. Как вы хотите, чтобы результат выглядел?

Ответ №1:

Если вы хотите вернуться назад во времени, вам нужно вычесть из текущей даты:

 methods: {
    // Get all days without sunday:
    dates(index) {
      var week = new Array();
      let current = new Date();
      // Starting Monday not Sunday
      current.setDate((current.getDate() - current.getDay()  1));
      for (var i = 0; i < 13; i  ) {
        let date = new Date(current);
        week.push(moment(date).format('DD.MM.YY'));
        current.setDate(current.getDate() - 1); // <-- this line changed
      }
      return week[index];
    },
  

Ответ №2:

Попробуйте это:

 function dates(index) {
      var week = new Array();
      let current = moment().subtract(1, 'days');
      for (var i = 0; i < 12; i  ) {
        week.push(current.format('DD.MM.YY'));
        current = current.subtract(1, 'days')
      }
      console.log(week);
      return week[index];
}
console.log(dates(2));  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js"></script>  

Комментарии:

1. Это кажется довольно неэффективным, оно копирует текущий без причины, затем копирует копию для создания объекта moment только для получения форматированной даты. Почему бы не создать единый объект moment, увеличить и отформатировать его? «Начать с понедельника, а не в воскресенье» работает только в том случае, если текущий день — вторник.