我从字符串中获取日期,解析它以获取日期,月份和年份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