Obtén los meses entre dos fechas

Crea una función que, dadas 2 fechas, devuelva los nombres de los meses que están presentes entre ellas (inclusive).

Ejemplos

Entrada

var january = new Date(2017, 0, 1);
var march = new Date(2017, 2, 1);

monthsInterval(january, march)

Salida

['January', 'February', 'March']

Entrada

var december = new Date(2017, 11, 1);
var january = new Date(2018, 0, 1);

monthsInterval(december, january)

Salida

['January', 'December']

Entrada

var january2017 = new Date(2017, 0, 1);
var january2018 = new Date(2018, 0, 1);

monthsInterval(january2017, january2018)

Salida

['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

(¡Observa que January no se duplica!)

Notas

  • El arreglo devuelto debe incluir los meses de dateStart y dateEnd (inclusive)
  • El arreglo devuelto no debe incluir valores duplicados
  • Los nombres de los meses devueltos por la función deben estar ordenados (no alfabéticamente, sino según cuál aparece primero (January = 1.er mes, February = 2.º mes, … , December = 12.º mes))
  • La función debe producir la misma salida incluso si dateStart es mayor que dateEnd