Да.Сначала вы читаете дату и конвертируете в объект даты
var dateString = document.getElementById('id of your field').value,
date = new Date(dateString);
, затем вычитаете 91 день и выводите результат
date.setDate(date.getDate() - 91);
alert(date.toString());
Здесь для простоты я предполагаю, что вы действительно хотите 91 деньа не 3 месяца а один день.Если вы хотите три месяца и один день, вы будете делать
date.setMonth(date.getMonth() - 3);
date.setDate(date.getDate() - 1);
alert(date.toString());
Объект Date позаботится о переполнениях, високосных годах и прочем.
Если вы хотите записать его в то же полезаботясь о нолях, вы можете сделать
function assureTwoDigits(number) {
if (number > 9) {
return '-' + number;
}
else {
return '-0' + number;
}
}
и изменить последнюю строку на
document.getElementById('id of your field').value = date.getFullYear() + assureToDigits(date.getMonth()) + assureTwoDigits(date.getDate());