Почему у меня есть эта ошибка, пытающаяся использовать функцию JavaScript substr()?

77
9

Я абсолютно новый в JavaScript, и у меня есть следующая проблема, пытающаяся использовать метод substr().

У меня есть строка, которая представляет данные: 20141202 (то есть для 2014-12-02 без символа '-').

Поэтому моя переменная DataDA содержит значение 20141202

Теперь я хочу извлечь год, месяц и день из этой строки, и я сделал что-то вроде этого:

year = DataDA.substr(0,4); 

и это кажется прекрасным работам, потому что значение года составляет 2014

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

month = DataDA.substr(5,6); 

и вместо этого получить 12, я получаю 202

Зачем? Что мне не хватает?

спросил(а) 2020-04-04T01:14:03+03:00 3 месяца назад
1
Решение
66

Второй аргумент в .substr(start[, length]) является длиной для извлечения. Вы можете использовать длину от 2 до .substr или использовать .substring которая использует индекс.

alert("20141202".substr(4,2));

ответил(а) 2020-04-04T01:33:36.046828+03:00 3 месяца назад
55

Потому как

function substr(start,lenght)

вы можете использовать это,

var DataDA = 20142201;

var year = DataDA.toString().substr(0,4);

var day = DataDA.toString().substr(4,2);

var month = DataDA.toString().substr(6,2);

ответил(а) 2020-04-04T01:14:03+03:00 3 месяца назад
55

Первый параметр - из какого индекса вы идете, а второй - сколько вы хотите.

Так что вам нужно

month = DataDA.substr(4,2); 

ответил(а) 2020-04-04T01:14:03+03:00 3 месяца назад
55

Вам необходимо изменить его на:

 month = DataDA.substr(4,2);

Первое число определяет начальный номер, а второй определяет длину строки.

ответил(а) 2020-04-04T01:14:03+03:00 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема