JSFiddle - React, Tailwind, and code Playground
Date ranges
by Hugo Carneiro
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
JavaScript
var rows = [
{
data: {
'Stating date': '01-25-2019',
'Birthday': '03-10'
}
},
{
data: {
'Stating date': '01-10-2019',
'Birthday': '02-28'
}
},
{
data: {
'Stating date': '11-25-2018',
'Birthday': '04-13'
}
}
];
var startingDateColumn = 'Stating date';
var birthdayDateColumn = 'Birthday';
var currentDate = moment();
var monthAgo = moment().subtract(30, 'days');
var monthAhead = moment().add(30, 'days');
// Filter by starting date
var startedWithinMonth = _.filter(rows, function(row) {
var startingDate = moment(row.data[startingDateColumn], 'MM-DD-YYYY');
return startingDate <= currentDate && startingDate >= monthAgo
});
console.log('Starting Date', startedWithinMonth);
// Filter by birthday
var birthdaysInMonth = _.filter(rows, function(row) {
var birthdayDate = moment(row.data[birthdayDateColumn], 'MM-DD');
console.log(birthdayDate);
return birthdayDate <= monthAhead && birthdayDate >= currentDate;
});
console.log('Birthday Date', birthdaysInMonth);