0

class dateInput {
  constructor() {
    this.input = document.querySelector(".input");
this.input.onChange = this.onChange;

}

onChange(event) { this.inputValue = event.srcElement.value; this.updateTime = new Date(); return this.inputValue; } }

class dateRange extends dataInput { constructor() { this.container = document.querySelector('.containerForLastUpdateRecordAndPeriodItems') }

createItems(period) { let dates = []; for (i = +period.start; i < +period.end; i += 3600000 * 168) dates.push(i) let periods = []; for (i = 0; i < date.length; i++) { let date = new Date(dates[i]); if (date.getDay() == 1) period = ${date.toLocaleDateString()} - {date.setHours(168).toLocaleDateString()} else if (date.getDay() == 2) period[i] = ${date.setHours(-24).toLocaleDateString()} - {date.setHours(144).toLocaleDateString()} else if (date.getDay() == 3) period[i] = ${date.setHours(-48).toLocaleDateString()} - {date.setHours(120).toLocaleDateString()} else if (date.getDay() == 4) period[i] = ${date.setHours(-48).toLocaleDateString()} - {date.setHours(120).toLocaleDateString()} else if (date.getDay() == 5) period[i] = ${date.setHours(-72).toLocaleDateString()} - {date.setHours(96).toLocaleDateString()} else if (date.getDay() == 6) period[i] = ${date.setHours(-96).toLocaleDateString()} - {date.setHours(72).toLocaleDateString()} else if (date.getDay() == 0) period[i] = ${date.setHours(-120).toLocaleDateString()} - {date.setHours(48).toLocaleDateString()}

  var n = periods.length,
    a = periods.length;
  do {
    b = false;
    a /= 1.3;
    if (a == 9 || a == 10) a = 11;
    if (a &lt; 1) a = 1;
    for (const i = 0; i &lt; n - a; ++i) {
      if (periods[i] &gt; periods[i + a]) {
        b = true;
        var t = periods[i + a];
        periods[i + a] = periods[i];
        periods[i] = t;
      }
    }
  } while (a &gt; 1 || b);
}
return periods;

}

renderItems(items) { this.container.appendChild(element = document.createElement('div')) element.innerText = Последнее изменение: ${this.updateTime.getDate() + '.' + this.updateTime.getMonth() &gt; 9 ? : '0'+this.updateTime.getMonth() : this.updateTime.getMonth()}

items.forEach(function(item) {
    const element = document.createElement('div', {
      innerText: item
    });
    this.container.appendChild(element)
  }
}

onChange() {   renderItems(this.createItems(this.createPeriod(this.inputValue)));
}

createPeriod(date) {
  let newDate = date;
  newDate.year = newDate.year + 1;
  return {
    start: date,
    end: newDate
  }
}

}

const range = Object.create(dateRange.prototype); range.constructor = range.constructor.bind(range); range.constructor();

<div class="input"><input type='date' /></div>
<div class="containerForLastUpdateRecordAndPeriodItems"></div>
entithat
  • 13,090
  • 3
    Задайте вопрос конкретнее. Что Вы пытаетесь сделать? Что не получается? – ymd Aug 25 '18 at 01:01
  • 2
    Рефакторить надо рабочий код, а не код с ошибками, как в данном случае – Grundy Aug 25 '18 at 05:02

0 Answers0