1)Oracle的ADD_MONTHS示例(日期,1):
SELECT ADD_MONTHS('30-Nov-15', 3) FROM dual;
2016年2月29日00:00:00
2)JavaScript:
var date= new Date("Mon Nov 30 2015 00:00:00");
date.setMonth(date.getMonth() + 3);
2016年3月1日星期二00:00:00
是否有任何JavaScript方法可以复制Oracle的ADD_MONTH()功能?
答案 0 :(得分:2)
如果你想在Oracle函数中实现相同的logik - 即对于“较短”月份你不会在下个月溢出,我想你需要自己做:
伪代码:
myDay = date.getDate(); // save the date
date.setMonth(date.getMonth() + 3); // add months
myNewDay = date.getDate();
while (myDay != myNewDay & myNewDay <= 3) {
myNewDay = myNewDay -1 // go back one day
date.setDate(myNewDay); // restore the
}
因此,如果您在添加月份后的当月同一天结束,那么您已做好准备。 如果你得到一个月的不同日期,它将是1,2或3(月长的差异); 每天都要回去,直到你到月底为止。
这是我对Oracle算法的了解。 HTH。
答案 1 :(得分:1)
date.getMonth()
返回上个月的日期而不是此月份日期。因此,要添加到正确的日期,请执行
date.setMonth(date.getMonth() + 2);