Проблема в расчете даты в Javascript - PullRequest
0 голосов
/ 17 июня 2011

Я использую приведенный ниже код для преобразования строки в дату.

Я передаю это «2010-06-23 00: 00: 00.0» в качестве входа в функцию. Вместо того, чтобы возвращать 21 июня 2010 года в качестве даты, мне возвращается 21 июля 2010 года. В чем может быть проблема?

function getDateFromString(string){
var month = string.substring(5,7);
var day = string.substring(8,10);
var year = string.substring(0,4);
var dateValue = new Date(year,month,day);
dateFormat(dateValue, "yyyy-mm-dd");
return date;
} 

Ответы [ 4 ]

3 голосов
/ 17 июня 2011

Месяцы нумеруются с нуля, а не с одного.Другими словами, «6» - это июль, а не июнь.

(я имею в виду, что они нумеруются таким образом, что касается класса JavaScript «Date».)

1 голос
/ 17 июня 2011

Параметр month конструктора объекта Date() начинается с нуля.

var dateValue = new Date(year, month - 1, day);
1 голос
/ 17 июня 2011

Месяц должен быть фактическим месяцем -1.Некоторые примеры можно найти по адресу Дата - Документы MDC , например, в разделе «Пример: несколько способов назначить даты».

Редактировать: изменена ссылка на Документы MDC после предложения Бернхарда Хофманна.

0 голосов
/ 17 июня 2011

Вы используете подстроку, которая принимает от и до в качестве параметров. так что в основном вы всегда получаете 3 символа с подстрокой. (год и 5 символов)

var month = parseInt(string.substr(5,2));
var day = parseInt(string.substr(8,2));
var year = parseInt(string.substr(0,4));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...