我從字符串中獲取日期,解析它以獲取日期,月份和年份constituant並將它們用於實例Date對象。JavaScript setDate返回錯誤的日期
我想要實現的是將日期遞增一天。 這一切工作正常,但setDate方法堅持有時返回我無效的日期有時...
例如,如果我添加1天到2011年2月28日,它將返回我2011年2月29日...一個日期這實際上不存在。
這是JavaScript本地日期/時間API的錯誤/限制,還是我只是做錯了什麼?我發現很難相信它沒有檢查日期的有效性就表現出這種行爲。
var myDate = new Date(2011, 2, 28);
alert(myDate);
myDate.setDate(myDate.getDate() + 1);
alert(myDate); // 29 February 2011 !
謝謝。
我現在看到的,非常感謝。我來自.Net背景,並且DateTime對象在那裏沒有這樣的行爲......我懷疑我做錯了什麼......不能說我發現這種行爲非常直觀,儘管大多數事情在編程中是基於0的。 – 2011-03-31 09:34:11
它更加不直觀,年份和日期部分似乎不是基於0的... – 2011-03-31 09:51:39
@Kharlos - 日數也是以0爲基礎的 - 0 =星期日 - 其中之一 - 更多信息在這裏:[爲什麼是1月在Java日曆0?](http://stackoverflow.com/questions/344380/why-is-january-month-0-in-java-calendar) – mplungjan 2011-03-31 09:55:56