Computer dating 1970
It restricts the number of millisecond ticks to be in the range plus or minus: 8,640,000,000,000,000 which gives you a date range of plus or minus 100,000,000,000,000 days.
To put this another way you can work with dates that span more than 23 billion (10) years before and after 1970.
Keeping time in seconds from this date is usually called "Unix time".
Notice that Java Script uses the Unix epoch but it counts time in milliseconds ticks, not in seconds.
Local time is offset from UTC by a number of minutes.
If you use one of these local time methods to set a Date object then the time is first converted to UTC and then the number of UTC millisecond ticks is computed and stored in the Date object.
There are four variations on the way the constructor can be called: isn't the first of January but of February.
Notice that you really do need to think about the Date object as storing the number of milliseconds from the fixed date rather than as storing a date and a time in some other format. There are lots of methods that will use the value of a Date object to return other information in other data formats.
This gives you an exact integer range of plus or minus 2 which is 9,007,199,254,740,992 However the Date object doesn't allow you to use this full range.
Dates in Java Script are easy to make use of once you understand how they are implemented and once you realize how the Java Script's type juggling gets into the act. The key idea in using a Date object is to know that it stores the date and time as the number of milliseconds from the fixed date: Why this exact date in 1970?
The reason is that this is the Unix epoch, i.e it is around the time when the Unix operating system was created.
The most basic are the UTC functions which return the date and time as stored in the Date object.
Of course not everyone wants to work with UTC and there are local time equivalents of each of the above methods - just leave out the UTC part of the name.