2016-12-13 2 views

ответ

1

Вы можете использовать String.slice с правильными параметрами для стандартной ISO 6801 комбинированной даты и времени.

var string = '2016-12-13T14:31:00+0100', 
 
    time = string.slice(11, 19); 
 

 
console.log(time);

0

Вы можете захватить часть даты и заменить его в качестве

str = "2016-12-13T14:31:00+0100".replace(/.*T(.*)\+.*/, '$1') 
console.log(str) 
// "14:31:00" 
  • .*T матчей ничего до T

  • (.*)\+ M atches ничего до следующего + и захватывает в $1


Если вы уверены, что входной строки, вы можете даже разбить строку на T и + в

"2016-12-13T14:31:00+0100".split(/[T+]/)[1] 
// "14:31:00 
+0

Заменить плохо в этом контексте, как это будет ввести побочный эффект и изменить исходное значение , –

+0

@JuhaTauriainen Он не изменяет оригинальную строку, он возвращает новую строку – nu11p01n73R

0

Если " T "и" + "всегда есть: это легко:

var split = "2016-12-13T14:31:00+0100".split ("T"); 
var final = split [ 1 ].split ('+') [ 0 ]; 

Если те, не соответствуют, то вы делаете что-то более активное участие, вероятно, так:

var split = "2016-12-13T14:31:00+0100".split (':'); 
var stringPart1 = split[0].substring (split[0].length - 2); 
// We can just use split [ 1 ], the second part, as-is 
var stringPart3 = split[2].split ('+') [ 0 ]; 
var finalString = stringPart1 + ":" + split [ 1 ] + ":" + stringPart3; 

Проверен его, и работа, и вы можете увидеть, как второй пример может позволить вам разместить различные случаи, как вы получить и форматировать ваши строковые части.

Обратите внимание, что нарезка кажется хорошей идеей, но будет работать только в том случае, если длина строки всегда согласована. Regex также является возможностью, но регулярное выражение может быть настолько загадочным для меня, вероятно, недостатком, который я должен исправить когда-нибудь.

0

Вот решение с использованием replace:

var s = "2016-12-13T14:31:00+0100"; 
 
var n = s.replace(/([\d\-]+T)|(\+\d+)/g, ""); 
 
console.log(n);

([\d\-]+T) соответствует дате

(\+\d+) соответствует часовому поясу,

g средства найти все матчи (глобальные)

0

вы можете попробовать это

var s = "2016-12-13T14:31:00+0100" 
    var a = s.split(":") 
     a[0]= a[0].slice(a[0].length - 2) 
     a[2] = a[2].slice(0,2) 
    var res = a.join(":") 
0

Вы также мог бы сделать, как

var res = "2016-12-13T14:31:00+0100".match(/[^T]+(?=\+)/)[0]; 
 
console.log(res);

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