I am defining a new Date object: const date = new Date(2020, 09, 11); The documentation says that the default time for the constructor is: hours : 0, minutes : 0, seconds : 0... etc. However, the result I get is:
const date = new Date(2020, 09, 11); console.log(date); 2020-10-11T07:00:00.000Z
Why is the hour 7?
When I put the following into the console:
const date2 = new Date(2020, 09, 11, -7) console.log(date2) 2020-10-11T00:00:00.000Z
I'm at a bit of a loss here.
That Z at the end stands for Zulu time = GMT. Since your difference is -7 I presume you are located at US Pacific Time. It's telling you that YOUR midnight is at 7am in the UK.
To display your local time do:
The displayed time is correct, but in a different time zone. The standard timezone in most programming languages is called UTC (Universal Time Coordinated), GMT (Greenwich Mean Time) or Zulu Time. You can see it by the "Z" at the end of your time string.
According to the local setup on your computer you can use
date.toLocaleString() --> But even here problems can arise, when your users did set their computer/browser time to a different timezone.
You can let your users set their timezones themselves and give these parameters to
toLocaleString() according to https://www.w3schools.com/jsref/jsref_tolocalestring.asp