Javascript: Рассчитать массив дат из ввода даты - PullRequest
0 голосов
/ 06 ноября 2018

для личного проекта я ломаю голову над этим:

Я хочу взять дату в будущем и число и вернуть массив дат (в любом формате), равномерно распределенных между текущей датой и будущей датой.

Пример: сегодня 6 ноября, я поставил 1 декабря и 5: функция (date, num) берет разницу в днях (эту часть я получил) и возвращает массив числовых дат (предположим, в формате дня ), каждый на дату-дифференциал / число времени (Ваниль / jquery / lodash / момент и т. Д ... все разрешено)

Мозговой штурм или псевдокод более чем приветствуются!

РЕДАКТИРОВАТЬ: сначала я не хотел делиться, потому что приложение в данный момент не работает, и ему все равно требуется время для запуска:

calculateReminders = (expirationDate, remindersNum) => {
let rightNow = moment();
let expirationDate = moment(expirationDate);
  if (expirationDate !== null && remindersNum > 0) {
  let differential = expirationDate.diff(rightNow, "days");
    if (differential) {
      let reminderFrequency = differential / remindersNum;
        if (reminderFrequency < 1) {
          Alert.alert(
            "some alert"
          );
          return undefined;
        }
      }
    }
  }
}

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

1 Ответ

0 голосов
/ 06 ноября 2018

Это, вероятно, дает вам то, что вам нужно. Надеюсь, это поможет.

const daysDifferential = 20; //This part you got
const n = 5; // Number of dates to return
const increaseOfDays = Math.floor(daysDifferential/n);
const arr = [];

for(let $i = 0; $i < n; $i++) {
  const d = new Date();
  d.setDate(d.getDate() + $i * increaseOfDays)
  arr.push(d);
}
console.log(arr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...