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);