0

I have the following javascript code:

<script type="text/javascript">
    $(function () {
        var currentDateTime = new Date();
        var oneYear = new Date();
        oneYear.setYear(oneYear.getYear() + 1);
        alert(currentDateTime + "_" + oneYear);
    });
</script>

i would expect the alert to output the current datetime and the datetime of one year from now. However I get this in the alert: "Fri Oct 22 2010 14:17:31 GMT-0400 (Eastern Daylight Time)_Thu Oct 22 0111 14:17:31 GMT-0400 (Eastern Daylight Time)"

Clearly it's not adding "1" to the Year correctly!

Whats going on? How did it become the year 0111???

kralco626
  • 8,176
  • 37
  • 108
  • 167
  • Related (duplicate?): [ *Why does Javascript getYear() return 108?* ](http://stackoverflow.com/questions/98124/why-does-javascript-getyear-return-108) – kennytm Oct 22 '10 at 18:24

3 Answers3

14

It is correct. .getYear() returns "actual year − 1900". 2010 − 1900 = 110.

Use .getFullYear() instead. .getYear() has been deprecated for a long time.

kennytm
  • 491,404
  • 99
  • 1,053
  • 989
3

Y2K was 10 years ago, but you're still using getYear instead of getFullYear? tsk tsk...

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getFullYear

Mike Ruhlin
  • 3,486
  • 2
  • 20
  • 31
1

Instead of .getYear() try .getFullYear()

vol7ron
  • 38,313
  • 20
  • 110
  • 168