Why does two JS date Objects instantianted differently?

Change this:

const currentDay = new Date();
this.availableFromDate = currentDay;
this.availableToDate = currentDay;

To this:

const currentDay = new Date();
currentDay.setHours(0, 0, 0, 0);
this.availableFromDate = new Date(currentDay);
this.availableToDate = new Date(currentDay);

This will zero out the time portion and make date comparison straight forward.

Next, change this:

if (
   (this.availableFromDate > this.availableToDate) ||
   (this.availableFromDate === this.availableToDate)
)

To this (assuming that you want to check greater than or equal to):

if (this.availableFromDate >= this.availableToDate)

You cannot compare two dates with === although you can compare them using < <= >= >.