Javascript date +5 won't increment the month

I have the following code that does not want to properly add 5 days to a date. here is the code:

// Grab previous session date so we can add 5 days and get new minDate
var currdate = new Date();
var one_day=1000*60*60*24;
var info = '';
var minDateBase = document.getElementById("class" + prevSession +  "_date").value;
var maxDateBase = document.getElementById("class1_date").value;
var minDateBits = minDateBase.split('-');
var maxDateBits = maxDateBase.split('-');
// Example Date working date 08-27-2012
// Example Date Not working date 09-03-2012
var minDate = new Date(minDateBits[2],minDateBits[0],minDateBits[1]);
var maxDate = new Date(maxDateBits[2],maxDateBits[0],maxDateBits[1]);
info = 'Selected Session Date: ' + minDate + '.' + "n";
info = info + 'Class 1 date         : ' + maxDate + '.' + "n";
var newMinDate = new Date();
var newMaxDate = new Date();
newMinDate.setUTCDate(minDate.getUTCDate() + 5);
newMaxDate.setUTCDate(maxDate.getUTCDate() + 42);
info = info + 'New Min. Date        : ' + newMinDate + '.' + "n";
info = info + 'New Max Date         : ' + newMaxDate + '.' + "n";
var maxDateDiff = newMaxDate.getTime() - currdate.getTime();
var minDateDiff = newMinDate.getTime() - currdate.getTime();
minDateDiff = Math.ceil(minDateDiff/one_day);
maxDateDiff = Math.ceil(maxDateDiff/one_day);
info = info + 'Min. Date Diff       : ' + minDateDiff + '.' + "n";
info = info + 'Max  Date Diff       : ' + maxDateDiff + '.' + "n";
alert (info);

Here is the output from the working "info" alert at the end:

Selected Session Date: Mon Aug 20 2012 00:00:00 GMT-0600 (Mountain Daylight Time).
Class 1 date : Mon Aug 20 2012 00:00:00 GMT-0600 (Mountain Daylight Time).
New Min. Date : Sat Aug 25 2012 09:13:19 GMT-0600 (Mountain Daylight Time).
New Max Date : Mon Oct 01 2012 09:13:19 GMT-0600 (Mountain Daylight Time).
Min. Date Diff : 13.
Max Date Diff : 50.

and here is the output from the non working "info" at the end ..

Selected Session Date: Mon Sep 03 2012 00:00:00 GMT-0600 (Mountain Daylight Time).
Class 1 date : Mon Sep 03 2012 00:00:00 GMT-0600 (Mountain Daylight Time).
New Min. Date : Wed Aug 08 2012 09:15:09 GMT-0600 (Mountain Daylight Time).
New Max Date : Fri Sep 14 2012 09:15:09 GMT-0600 (Mountain Daylight Time).
Min. Date Diff : -4.
Max Date Diff : 33.

Any ideas why the "min Date" is keeping the same month value resulting in a time difference of -4?

Thanks,

Silver Tiger

** UPDATE **

My last idea seems to have addressed the issue, updated the following code to reflect:

var minDate = new Date(minDateBits[2],parseFloat(minDateBits[0]) - 1,minDateBits[1]);
var maxDate = new Date(maxDateBits[2],parseFloat(maxDateBits[0]) - 1,maxDateBits[1]);
info = 'Selected Session Date: ' + minDate + '.' + "n";
info = info + 'Class 1 date         : ' + maxDate + '.' + "n";

var newMinDate = new Date();
var newMaxDate = new Date();

newMinDate.setTime(minDate.getTime() + (5 * one_day));
newMaxDate.setTime(maxDate.getTime() + (42 * one_day));

I will keep testing but it has worked on the first few tries...

链接地址: http://www.djcxy.com/p/18638.html

上一篇: 创建新日期对象时的不一致

下一篇: Javascript日期+5不会增加月份