我在格式化从 Twitter API 收到的字符串时遇到问题。我使用 timeago 插件并在 IE 10 中返回 NaN。在寻找它之后似乎是因为收到的时间格式如下:
2013 年 4 月 2 日星期二 14:27:31 +0000
代替:
2013 年 4 月 2 日星期二 14:27:31 +0000
任何人都知道如果存在这种匹配的快速方法,然后如果存在则附加字符串?
问候
我在格式化从 Twitter API 收到的字符串时遇到问题。我使用 timeago 插件并在 IE 10 中返回 NaN。在寻找它之后似乎是因为收到的时间格式如下:
2013 年 4 月 2 日星期二 14:27:31 +0000
代替:
2013 年 4 月 2 日星期二 14:27:31 +0000
任何人都知道如果存在这种匹配的快速方法,然后如果存在则附加字符串?
问候
您可以使用splice
andsplit
方法来实现这一点。
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(" "));
你可以这样做:
Var dateStr; // your date string
Var index = dateStr.indexOf('+');
If (index === dateStr.length-5) {
// you're in format two, what you wanted
}
需要注意的是,这个日期必须以你显示它的方式出现。
使用正则表达式,您可以使用:
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");
这将切换原始日期中最后两个数字块的位置。
此外,此方法不会更改与正则表达式不匹配的日期。如果您获得的 originalDate 已经具有“2013 +0000”格式,则不会更改。;)