我正在寻找这个确切问题的答案:How to format Facebook/Twitter dates (from the JSON feed) in Objective-C only in JS。
有推荐的方法吗?
从 Twitter 返回的日期如下所示: Wed Oct 17 21:22:27 +0000 2012 而从 FB 则如下所示: 2012-10-18T11:21:30+0000
我发现它们不包含 unix 时间戳非常奇怪(并且非常烦人),有人看到原因吗?
我正在寻找这个确切问题的答案:How to format Facebook/Twitter dates (from the JSON feed) in Objective-C only in JS。
有推荐的方法吗?
从 Twitter 返回的日期如下所示: Wed Oct 17 21:22:27 +0000 2012 而从 FB 则如下所示: 2012-10-18T11:21:30+0000
我发现它们不包含 unix 时间戳非常奇怪(并且非常烦人),有人看到原因吗?
日期字符串解析是一个非常常见的问题,肯定已经有答案了。无论如何...
如果日期格式为 2012-10-18T11:21:30+0000(几乎是 ISO8601)并且偏移量始终为 +0000(即 UTC),您可以使用以下方法创建合适的日期对象:
function isoStringToDate(s) {
var b = s.split(/[-t:+]/ig);
return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5]));
}
这将返回为该 UTC 时间设置的本地日期对象。请注意,这取决于用户系统设置为适当的时区。
Facebook 格式(Wed Oct 17 21:22:27 +0000 2012)格式可以类似地转换:
function fbStringToDate(s) {
var b = s.split(/[: ]/g);
var m = {jan:0, feb:1, mar:2, apr:3, may:4, jun:5, jul:6,
aug:7, sep:8, oct:9, nov:10, dec:11};
return new Date(Date.UTC(b[7], m[b[1].toLowerCase()], b[2], b[3], b[4], b[5]));
}
再次假设它总是 +0000 (UTC) 的偏移量。如果需要其他偏移量,可以在返回之前将其应用于创建的日期对象。