Как установить метку настраиваемого диапазона в daterangepicker - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь отобразить последние 4 года в диапазоне выбора даты без значений жесткого кодирования. Например: если текущим годом является 2020, то должны отображаться год 2020, год 2019, год 2018 и год 2017. Я пытался использовать 'Year '+ currentYear: [moment()....] но это не сработало.
Любая помощь высоко ценится!

Код с жестко закодированным значением

$(function() {
  var currentYear = moment().year(); // This Year
  var currentYearStart = moment({
    years: currentYear,
    months: '0',
    date: '1'
  }); // 1st Jan this year
  var currentYearEnd = moment({
    years: currentYear,
    months: '11',
    date: '31'
  }); // 31st Dec this year
  var start = moment().subtract(29, 'days'); // Subtract 29 days from today
  var end = moment(); // Today
  function cb(start, end) {
    $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
  }
  $('#reportrange').daterangepicker({
    startDate: start,
    endDate: end,
    ranges: {
      'Today': [moment(), moment()],
      'Last 30 Days': [moment().subtract(29, 'days'), moment()],
      'Year 2017': [moment(currentYearStart.subtract(1, 'year')), moment(currentYearEnd.subtract(1, 'year'))],
      'Year 2016': [moment(currentYearStart.subtract(1, 'year')), moment(currentYearEnd.subtract(1, 'year'))],
      'Year 2015': [moment(currentYearStart.subtract(1, 'year')), moment(currentYearEnd.subtract(1, 'year'))],
      'Year 2014': [moment(currentYearStart.subtract(1, 'year')), moment(currentYearEnd.subtract(1, 'year'))],
    }
  }, cb);
  cb(start, end);
});

Демо

http://jsfiddle.net/4xuvLyr5/

1 Ответ

0 голосов
/ 05 июля 2018

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

  var dateRange = {};
  dateRange["Today"] = [moment(), moment()];
  dateRange["Last 30 Days"] = [moment().subtract(29, 'days'), moment()];
  dateRange["Year " + (currentYear - 1)] = [moment(currentYearStart.subtract(1, "year")), moment(currentYearEnd.subtract(1, "year"))]; // Year 2017
  dateRange["Year " + (currentYear - 2)] = [moment(currentYearStart.subtract(1, "year")), moment(currentYearEnd.subtract(1, "year"))]; // Year 2016
  dateRange["Year " + (currentYear - 3)] = [moment(currentYearStart.subtract(1, "year")), moment(currentYearEnd.subtract(1, "year"))]; // Year 2015
  dateRange["Year " + (currentYear - 4)] = [moment(currentYearStart.subtract(1, "year")), moment(currentYearEnd.subtract(1, "year"))]; // Year 2014

  $('#reportrange').daterangepicker({
    startDate: start,
    endDate: end,
    ranges: dateRange
  }, cb);

Справка:

JavaScript устанавливает ключ объекта по переменной

Демо-версия:

http://jsfiddle.net/e6th72b0/

...