Twitter 状态时间戳帮助
Posted
技术标签:
【中文标题】Twitter 状态时间戳帮助【英文标题】:Twitter statuses timestamp help 【发布时间】:2010-09-28 18:08:40 【问题描述】:我正在尝试在我的博客上显示 Twitter 状态,但是我无法获得每个状态的创建时间来显示我想要的方式。这是它现在的打印方式:
Thu Aug 05 12:36:20 +0000 2010
但是我希望它像这样显示:
54 days ago
我如何使用 php preg_replace 管理这个?
目前我也在使用 twitter API 来获取状态。使用这种方法还是 RSS 提要更好?如果有人可以帮助我,我将不胜感激。谢谢
【问题讨论】:
【参考方案1】:我真的建议将其写成“2010 年 8 月 5 日”(或者您希望它出现的任何形式)。这样你只需要写一次,而不是每天一次。但也可以以 JS 可以读取的方式写入 GMT 时间戳,但关闭 JS 的人看不到它。然后,一旦你的页面正确显示,使用 JS 脚本循环标记并用你想要的友好文本替换日期。示例:
<span class="dateToBeReplaced" title="Thu Aug 05 2010 12:36:20 GMT+0000">Aug 05 2010</span>
JS 看起来像这样(使用 jQuery):http://jsfiddle.net/JxTLt/4/
JS 对日期格式比 PHP 更挑剔一些,所以你应该坚持上面的格式。使用strtotime()
处理格式化和时区转换。
【讨论】:
【参考方案2】:您不需要手动解析日期,它已经是可以理解的格式。如果您通过strtotime 运行它,它将返回一个您可以使用的时间戳。
随心所欲显示时间的概念称为“模糊时间”,你可以在上面找到一个真正的代码帖子here。
【讨论】:
【参考方案3】:您将无法单独使用 preg_replace()
执行此操作。您需要进行一些时间比较来创建人类可读的时间戳。查看this post。另请注意,Twitter 回复将是格林威治标准时间。
就 API 与 RSS 而言,这完全取决于您。必须解析两个响应。由于 Twitter 仅支持 OAuth,因此 API 的开销可能会更大。尽管有几个 PHP 库可用。如果您只想显示状态,我会使用 RSS。
【讨论】:
如何通过 RSS 进行操作?我似乎在任何地方都找不到教程。以上是关于Twitter 状态时间戳帮助的主要内容,如果未能解决你的问题,请参考以下文章