Добавьте дни в дату с Jquery - PullRequest
0 голосов
/ 10 января 2020

Мне нужно добавить дни в датах внутри массива, как показано на рисунке ниже: data.getDate()

Когда выбрано шоу Семанал (еженедельно), добавьте 7 дней на каждую дату, но мой Код добавляется в тот же день на все последующие даты:

var number_installments = 10, frequency = 1;
for(let i = 1; i <= number_installments; i++){
    // console.log('Frequencia: ' + frequency)
    let data = new Date();
    let dia = data.getDate(), mes = data.getMonth(), ano = data.getFullYear(), zero = '';
    if((mes + i) <= 9){
        zero = '0';
    }
    let due_date = dia + '/' + zero + (mes + i) + '/' + ano;;
    //console.log(i)
    if(frequency == 1 && i != 1){
        dia = data.getDate() + 7;
        due_date = dia + '/' + zero + (mes + 1) + '/' + ano;
        
    }
    console.log(due_date);
}

Ответы [ 3 ]

0 голосов
/ 10 января 2020

Это потому, что вы инициализировали свой объект «data» на каждой итерации, которая будет содержать только текущую дату и день. Который после добавления 7 результатов совпадает.

Может быть, это исходит из данных извне.

let data = new Date();
0 голосов
/ 10 января 2020

Мне удалось решить с помощью Abhay H Soningra

var number_installments = 10, frequency = 1;
let data = new Date();
let dia = data.getDate(), mes = data.getMonth(), ano = data.getFullYear(), zero = '0', max_days, max_months = 12;
if(dia % 2 == 0){
    max_days = 31;
} else{
    max_days = 30;
}
for(let i = 1; i <= number_installments; i++){
    // console.log('Frequencia: ' + frequency)    
    if((mes + i) <= 9){
        zero = '0';
    }
    let due_date = dia + '/' + zero + (mes + i) + '/' + ano;;
    //console.log(i)
  if(frequency == 1 && i != 1){
      dia = dia + 7;
      if(dia > max_days){
          mes  = mes + 1;
          dia = data.getDate();
      }
      if((mes + 1) > max_months){
          mes = data.getMonth();
          ano = ano + 1;
      }
      due_date = dia + '/' + zero + (mes + 1) + '/' + ano;
  }
    console.log(due_date);
}
0 голосов
/ 10 января 2020

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

var today = date.toJSON().slice(0,10)

, что приведет к полной дате. Это сделает ваш код проще для чтения и изменения.

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