I am trying to create a new Date
instance in Javascript.
I have integer values representing year
, month
and day
. Following this tutorial, syntax for creating a new Date
should be:
new Date(year, month, day, hours, minutes, seconds, milliseconds)
and that is exactly what I am doing:
var d = new Date(2016, 12, 17, 0, 0, 0, 0);
This should be December 17th 2016, but in my console output I see:
Tue Jan 17 2017 00:00:00 GMT+0100 (Central Europe Standard Time)
What am I doing wrong?
I am trying to create a new Date
instance in Javascript.
I have integer values representing year
, month
and day
. Following this tutorial, syntax for creating a new Date
should be:
new Date(year, month, day, hours, minutes, seconds, milliseconds)
and that is exactly what I am doing:
var d = new Date(2016, 12, 17, 0, 0, 0, 0);
This should be December 17th 2016, but in my console output I see:
Tue Jan 17 2017 00:00:00 GMT+0100 (Central Europe Standard Time)
What am I doing wrong?
Share Improve this question edited May 29, 2024 at 17:59 Jon Schneider 27k24 gold badges151 silver badges180 bronze badges asked Dec 5, 2016 at 19:37 FrenkyBFrenkyB 7,16716 gold badges73 silver badges124 bronze badges 2 |2 Answers
Reset to default 118January
is month 0
. December
is month 11
.
So this should work:
var d = new Date(2016, 11, 17, 0, 0, 0, 0);
Also, you can just simply do:
var d = new Date(2016, 11, 17);
According to MDN - Date:
month
Integer value representing the month, beginning with 0 for January to 11 for December.
You should subtract 1 from your month:
const d = new Date(2016, 11, 17, 0, 0, 0, 0);
var d = new Date(2016, 11, 17, 0, 0, 0, 0);
It should be fine. – Hiren Commented Dec 5, 2016 at 19:42