Добавить 30 дней до даты (мм/дд/гг)

У меня есть дата в формате mm/dd/yy и я хочу добавить к ней 30 дней. Мне просто любопытно, лучший способ сделать это? Я новичок в JavaScript, поэтому примеры будут полезны.

РЕДАКТИРОВАНИЕ

Извините, я использую формат даты США mm/dd/yy.

Ответ 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)}');
});

Ответ 2

Простой способ сделать это - отправить значение timestamp в конструкторе Date. Чтобы вычислить 30 дней, измеренных в метке времени:

30 * 24 * 60 * 60 * 1000

Затем вам нужна текущая временная метка:

Date.now()

Наконец, суммируем оба значения и отправляем результат в качестве параметра в конструкторе:

var nowPlus30Days = new Date(Date.now() + (30 * 24 * 60 * 60 * 1000));

Ответ 3

пытаться

new Date(+yourDate - 30 *86400000)

var yourDate = new Date() 
var newDate = new Date(+yourDate - 30 *86400000)

console.log(newDate)