2013-04-22 75 views
0

我有格式化从Twitter API接收到的字符串的问题。即时通讯使用TIMEAGO插件和IE 10将返回NaN狩猎下来,似乎是因为收到的时间被格式化,像这样经过:附加字符串匹配子字符串

星期二4月2日14时27分31秒+0000 2013

而不是

星期二4月2日14时27分31秒2013 +0000

任何人都知道匹配的快捷方式,如果这是存在,然后澳鹏如果它是字符串?

问候

回答

1

您可以使用splicesplit的方法来实现这一目标。

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

工程就像一个魅力! – 2013-04-22 06:55:45

+0

没错,只要你总是得到相同的输入,这就行得通。如果输入更改,则使用正则表达式更安全。 – Friederike 2013-04-22 06:59:31

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”的originalDate,则将更改而不是。 ;)