Ответ 1
Обновленный ответ (2018)
Один из способов добавить 30 дней в строку даты - проанализировать ее в дате, добавить 30 дней, а затем отформатировать обратно в строку.
Строки даты должны анализироваться вручную, либо с помощью специальной функции, либо с помощью библиотеки. В любом случае вам нужно знать формат, чтобы знать, правильно ли он был проанализирован, например,
// Given a string in m/d/y format, return a Date
function parseMDY(s) {
var b = s.split(/\D/);
return new Date(b[2], b[0]-1, b[1]);
}
// Given a Date, return a string in m/d/y format
function formatMDY(d) {
function z(n){return (n<10?'0':'')+n}
if (isNaN(+d)) return d.toString();
return z(d.getMonth()+1) + '/' + z(d.getDate()) + '/' + d.getFullYear();
}
// Given a string in m/d/y format, return a string in the same format with n days added
function addDays(s, days) {
var d = parseMDY(s);
d.setDate(d.getDate() + Number(days));
return formatMDY(d);
}
[['6/30/2018', 30],
['1/30/2018', 30], // Goes from 30 Jan to 1 Mar
['12/31/2019', 30]].forEach(a => {
console.log('${a[0]} => ${addDays(...a)}');
});