当我尝试添加接近 11 月 30 日(任何一年)的日子时,我的代码表现得很有趣:
Date.prototype.addDays = function(days){
this.setDate(this.getDate() + days);
return this;
};
function calculateDate(string_date, days_to_add){
var arr, dat;
arr = string_date.split(" ");
dat = new Date(2013, (("enefebmarabrmayjunjulagosepoctnovdic".indexOf(arr[1])+3)/3), (((arr[0].charAt(0)!="0")?arr[0]:arr[0].substring(1))*1));
dat.addDays(days_to_add*1);
return (dat.getDate() + "/" + dat.getMonth() + "/"+dat.getFullYear());
}
现在,如果我使用:
calculateDate("07 nov",24);
返回31/11/2013
(我的日历上说这个 2013 年 11 月停止在 30 点)calculateDate("07 nov",25);
返回1/0/2014
我的代码似乎在任何其他月份和日期都可以正常工作,那么为什么我的代码在 11 月至 12 月附近不能正常工作?计算机是否已经产生了感觉并要求休假以继续工作?