Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

setMonth(1) gives me March?

Tags:

javascript

Why is setMonth(1) giving me March? I believe that 0=Jan, 1=Feb, 2=Mar

<!DOCTYPE html>
<html>
<head>
<script>
window.onload = init;

function init(){
var d = new Date();
d.setFullYear(2014);
d.setMonth(1);
d.setDate(1);

document.getElementById("demo").innerHTML = d;
}
</script>
</head>
<body>

<div id="demo"></div>

</body>
</html>

I get...

Sat Mar 01 2014 15:11:03 GMT-0600 (Central Standard Time)

I'm running Win7 Pro 64-bit and the clock and calendar seem to be correct.

like image 476
davej Avatar asked Jan 31 '14 21:01

davej


1 Answers

Today is the 31st of January. When you d.setMonth(1); you are trying to set the date to the 31st of February. Since this date doesn't exist, it falls over to the 3rd of March.

Set the whole date when you initialise the object, don't try to change it piecemeal.

like image 58
Quentin Avatar answered Oct 16 '22 05:10

Quentin