У меня есть функция JavaScript, которая регулирует дату нажатия кнопки. Он использует функцию getDate() и вычитает 7 дней с текущего значения даты в текстовом поле. Проблема, которую я вижу, и я пробовал различные способы исправить, но ничего не работает, так это то, что когда я нажимаю кнопку, она показывает правильную дату, когда я нажимаю на нее снова, а возвращаюсь еще на семь дней, она переходит к полностью другая дата - например, если дата в текстовом поле - 05/01/2014, я нажимаю кнопку, она идет до 29/12/2014, я нажимаю ее снова, я получаю 28/11/2015 - НЕ 22/12/2014.JavaScript getDate() неправильно корректирует дату при добавлении и вычитании
Вот мой код JavaScript:
var fromDateIn = new Date(formatDate(document.getElementById('<%= txtFromDate.ClientID%>').value));
var newdate = new Date(fromDateIn);
newdate.setDate(newdate.getDate() - 7);
var nd = new Date(newdate);
document.getElementById('<%= txtFromDate.ClientID%>').value = formatDate(nd);
function formatDate(inputDate) {
var d = new Date(inputDate || Date.now()),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return [day, month, year].join('/');
}
Может кто-то пожалуйста указать мне, как я могу последовательно вычитать 7 дней от того, что текущее значение даты в текстовом поле?
Благодаря
В вашем примере у вас есть за день до месяца во входной строке. Конструктор даты хочет, чтобы месяц был до дня. Возможно, это часть проблемы. – Alex