Проблема добавления даты в Javascript - PullRequest
0 голосов
/ 03 декабря 2009

У меня есть этот фрагмент:

var d1 = parseInt( document.getElementById('day1').value );
var m1 = parseInt( document.getElementById('month1').value );
var y1 = parseInt( document.getElementById('year1').value );

var dt = new Date();
dt.setYear(y1);
dt.setMonth(m1);
dt.setDate(d1 + 1);

document.getElementById('day2').value = dt.getDate();
document.getElementById('month2').value = dt.getMonth();
document.getElementById('year2').value = dt.getYear();

Моя цель состоит в том, чтобы автоматически инициировать значение даты2, добавив 1 день от даты1. Тем не менее, когда я заполняю:

 day1 = 32
 month1 = 1
 year1 = 2009

Я получил:

 day1 = 5
 month1 = 2
 year1 = 2009

Я не знаю, что происходит. Ребята, вы знаете решения?

Ответы [ 2 ]

2 голосов
/ 03 декабря 2009

Объект JavaScript Date обрабатывает месяцы как числа, начинающиеся с нуля (0 января, 1 февраля, ..., 11 декабря).

Также у вас могут возникнуть проблемы с методами set, я бы рекомендовал вам использовать Date конструктор :

var d1 = +document.getElementById('day1').value;
var m1 = +document.getElementById('month1').value - 1; // zero based!!
var y1 = +document.getElementById('year1').value;

var dt = new Date(y1, m1, d1);
1 голос
/ 06 декабря 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...