Your time zone is GMT-6 (as shown in GMT-0600 (MDT) in your output). Therefore, the date that is generated is shifted by -6 hours. In this case, midnight minus 6 hours is 6 pm on the previous day.
If you call date.toISOString() , you will see that the UTC time is "2016-04-10T00:00:00.000Z" as expected.
source share