2015-10-01 3 views
-2

Я написал следующий код:Почему мой субстрат не работает должным образом в javascript?

var serverTime ="October 01, 2015 18:39:21 +0900"; 
var timezone = serverTime.substr(serverTime.length-5,serverTime.length-1); 
alert(timezone); 

и я хочу, чтобы отобразить +09, однако в ответ я получаю полную строку +0900. Почему моя функция substr не возвращает правильное значение?

http://jsfiddle.net/8ej2kwte/

+0

Используйте 'substring' как' serverTime.substring (serverTime.length-5, serverTime.length-2); 'Проверьте обновленный http://jsfiddle.net/tusharj/8ej2kwte/1/ – Tushar

+1

простой ответ. Второй параметр - LENGTH –

+0

Именно так, как сказал Jaromanda X, перед тем, как задать вопрос, связанный с определенной функцией, рекомендуется [знать его синтаксис] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Справочник/Global_Objects/String/зиЬзЬги). – Armfoot

ответ

2

Метод substr() извлекает части строки, начиная с символа в указанной позиции и возвращает указанное количество символов.

var serverTime ="October 01, 2015 18:39:21 +0900"; 
var timezone = serverTime.substr(serverTime.length-5,3); 
alert(timezone); 
2

From MDN substr()

str.substr(start[, length])

Параметры

start

Место, с которого начинается извлечение символов. Если отрицательное число дается, оно рассматривается как strLength +, где начинают strLength это длина строки (например, если старт -3 он рассматривается как strLength - 3.)

length Необязательный.

Количество символов для извлечения.

С substr вторым параметром является длина строки для извлечения, а не конечная позиция. Поэтому в качестве второго параметра вы должны использовать 3. Также обратите внимание на substring(), который использует индексы.

Смежные вопросы