2013-04-22 3 views
0

У меня возникают проблемы с форматированием строки, полученной из API Twitter. Im используя timeago плагин и возвращает NaN в IE 10. После охоты вниз это, кажется, потому что время получил отформатирован следующим образом:append string with substched substring

Вс апр 02 14:27:31 +0000 2013

вместо:

вт Апр 02 14:27:31 2013 +0000

Каждый знает быстрый способ согласования, если это присутствует, а затем Appen ding строка, если она есть?

С уважением

ответ

1

Вы можете использовать splice и split метод для того чтобы достигнуть этого.

var time="Tue Apr 02 14:27:31 +0000 2013"; 
var arr = time.split(" "); 
var year = arr.splice(arr.length-1,1); 
arr.splice(arr.length-1,0, year[0]); 

//console.log(arr.join(" ")); 
+0

Работает как очарование! –

+0

Правда, это работает до тех пор, пока вы всегда получаете тот же вход. Если входные данные меняются, вы можете безопасно использовать регулярные выражения. – Friederike

0

Вы можете сделать это:

Var dateStr; // your date string 
Var index = dateStr.indexOf('+'); 

If (index === dateStr.length-5) { 
    // you're in format two, what you wanted 
} 

Проблема заключается в том, что эта дата должна прийти, как вы отображаемом его.

0

Использование регулярных выражений вы могли бы использовать это:

var originalDate = "Tue Apr 02 14:27:31 +0000 2013"; 
// find the last two number blocks and swap them 
var reformattedDate = originalDate.replace(/ (\+[0-9]+) ([0-9]{4})$/, "$2 $1"); 

Это переключит положение последних двух номерных блоков в первоначальной даты.

Также этот метод не будет изменять даты, которые не соответствуют регулярному выражению. Если вы получите оригинал, который уже имеет формат «2013 +0000», то будет изменен не. ;)