Friendly Date Ranges

by Sebastian

JavaScript

function makeFriendlyDates(arr) {
  var arr = Array.from(arr);
  var year1 = arr[0].slice(0, 4);
  var year2 = arr[1].slice(0, 4);
  var month1 = arr[0].slice(5, 7);
  var month2 = arr[1].slice(5, 7);
  var day1 = arr[0].slice(8, 10);
  var day2 = arr[1].slice(8, 10);
  var d = new Date();
  var currentYear = d.getFullYear().toString();
  console.log(currentYear);
  var date1 = monthLit(month1) + " " + getDaySuffix(day1) + ", " + year1;
  var date2 = monthLit(month2) + " " + getDaySuffix(day2) + ", " + year2;

  function getDaySuffix(day) {
    var dayInt = parseInt(day);
    if (dayInt < 4 || dayInt > 20 && dayInt < 24 || dayInt > 30) {
      if (day[1] === "1") {
        return parseInt(day) + "st";
      } else if (day[1] === "2") {
        return parseInt(day) + "nd";
      } else if (day[1] === "3") {
        return parseInt(day) + "rd";
      }
    } else {
      if (day[0] === "0") {
        return day[1] + "th";
      } else {
        return day + "th";
      }
    }
  } // end getDaySuffix

  function monthLit(month) {
    switch (month) {
      case "01":
        return "January";
      case "02":
        return "February";
      case "03":
        return "March";
      case "04":
        return "April";
      case "05":
        return "May";
      case "06":
        return "June";
      case "07":
        return "July";
      case "08":
        return "August";
      case "09":
        return "September";
      case "10":
        return "October";
      case "11":
        return "November";
      case "12":
        return "December";
    }
  } // end monthLit
  arr[0] = date1;
  arr[1] = date2;

  if (date1 === date2) {
    arr.pop();
    console.log(arr);
    return arr;
  }
  console.log(month1 === month2);

  if (year1 === currentYear) {
    if ((year2 - currentYear) <= 1) {
      if (month1 === month2) {
        arr[0] = monthLit(month1) + " " + getDaySuffix(day1);
        arr[1] = getDaySuffix(day2);
        return arr;
      }
      if...