У меня есть дата в формате mm/dd/yy
и я хочу добавить к ней 30 дней. Мне просто любопытно, лучший способ сделать это? Я новичок в JavaScript, поэтому примеры будут полезны.
РЕДАКТИРОВАНИЕ
Извините, я использую формат даты США mm/dd/yy
.
У меня есть дата в формате mm/dd/yy
и я хочу добавить к ней 30 дней. Мне просто любопытно, лучший способ сделать это? Я новичок в JavaScript, поэтому примеры будут полезны.
РЕДАКТИРОВАНИЕ
Извините, я использую формат даты США mm/dd/yy
.
Один из способов добавить 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)}');
});
Простой способ сделать это - отправить значение timestamp в конструкторе Date
. Чтобы вычислить 30 дней, измеренных в метке времени:
30 * 24 * 60 * 60 * 1000
Затем вам нужна текущая временная метка:
Date.now()
Наконец, суммируем оба значения и отправляем результат в качестве параметра в конструкторе:
var nowPlus30Days = new Date(Date.now() + (30 * 24 * 60 * 60 * 1000));
пытаться
new Date(+yourDate - 30 *86400000)
var yourDate = new Date()
var newDate = new Date(+yourDate - 30 *86400000)
console.log(newDate)