Я пытаюсь отобразить последние 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/