Javascript 如果年度增加,如何处理提前6个月的日期
这是我的函数,我正在尝试获取6个月ahea或6个月之前的日期Javascript 如果年度增加,如何处理提前6个月的日期,javascript,date,Javascript,Date,这是我的函数,我正在尝试获取6个月ahea或6个月之前的日期 var newEndDate = formatDateaddMonths(startDate,+6); function formatDateaddMonths(dateMod, monthsAddedDeducted) { //startDate //split date var dateSplit = dateMod;
var newEndDate = formatDateaddMonths(startDate,+6);
function formatDateaddMonths(dateMod, monthsAddedDeducted)
{
//startDate
//split date
var dateSplit = dateMod;
var dateSplitted = dateSplit.split("/");
var day = dateSplitted[0];
var month = dateSplitted[1];
var year = dateSplitted[2];
console.log("day" + day);
console.log("month" + month);
console.log("year" + year);
newDateModification = day + '/' + month + '/' + year;
var newDate = Date.parse(newDateModification).add(monthsAddedDeducted).months();
//convert to string
var newDateString = newDate.toString('dd/MM/yyyy');
return newDateString;
}
只要在年底之前不调用该函数,该函数就可以正常工作
例如,如果startDate=10/11/2015
,它会中断,因为年份没有增加,日期最终为29/12/2015
Date.parse(newDateModification).add(monthsAddedDeducted).months();
是一个date.js函数
你知道如何处理年度增量吗
谢谢。如果您使用与
normalizeMonths( dateString ){
var split = dateString.split("/");
if ( split[1] > 12 ){
split[1] = split[1] - 12;
split[2] = split[2] + 1;
}
然后像以前一样重新组合日期,这应该可以解决问题。解决方案是使用矩.js:
var a = moment([2010, 0, 31]).subtract(6, 'months');
var b = moment([2010, 0, 31]).add(6, 'months');
您应该以毫秒为单位递增和递减日期值,这样就无关紧要了