// helper function for Date.prototype.add and Date.prototype.subtract
function dateAddRemove(input, self, adding){
- var ms = input.ms,
- s = input.s,
- m = input.m,
- h = input.h,
- d = input.d,
- w = input.w,
+ var ms = input.ms || 0 +
+ input.s || 0 * 1000 +
+ input.m || 0 * 1000 * 60 +
+ input.h || 0 * 1000 * 60 * 60 +
+ input.d || 0 * 1000 * 60 * 60 * 24 +
+ input.w || 0 * 1000 * 60 * 60 * 24 * 7,
M = input.M,
y = input.y;
- ms && self.addMilliseconds(ms * adding);
- s && self.addSeconds(s * adding);
- m && self.addMinutes(m * adding);
- h && self.addHours(h * adding);
- d && self.addDays(d * adding);
- w && self.addWeeks(w * adding);
- M && self.addMonths(M * adding);
- y && self.addYears(y * adding);
+ ms && self.setMilliseconds(self.getMilliseconds() + ms * adding);
+ M && self.setMonth(self.getMonth() + M * adding);
+ y && self.setYear(self.getYear() + y * adding);
}
dateProto.add = function (input) {