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,456
  • 38
  • 112
  • 169
  • 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
  • 510,854
  • 105
  • 1,084
  • 1,005
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,546
  • 2
  • 21
  • 31
1

Instead of .getYear() try .getFullYear()

vol7ron
  • 40,809
  • 21
  • 119
  • 172