Должен ли я использовать предустановку babel «stage-2»?
Разделите проблему на случаи, затем обрабатывайте каждый случай.
Ситуация «два диапазона дат пересекаются» охватывает два случая: первый диапазон дат начинается во втором, или второй диапазон дат начинается с первый.