Jac*_*ack 1 php mysql timestamp date-formatting
所以基本上,我正在从我的MySQL数据库中选择一个时间戳.在数据库中,时间戳如下所示:
2010-06-30 12:36:08
显然,对于一个webapp,这对用户来说并不是很有吸引力.因此,使用一些CodeIgniter函数,我让它看起来更好一些.
<h4 class="timestamp">
<?php // Quickly calculate the timespan
$post_date = mysql_to_unix($row->date);
$now = time();
echo timespan($post_date, $now);?> ago
</h4>
Run Code Online (Sandbox Code Playgroud)
如果你不做CodeIgniter,一切都是标准的PHP,除了echo timespan().CodeIgniter只是将它称为"英语"时间跨度.因此,示例输出将是:
2 Months, 4 Weeks, 5 Hours, 20 Minutes ago
这一切都很好,但是,我想让它看起来更好......有太多的逗号,而且它太长了(我知道,我很挑剔......).我会喜欢的是:
7 hours, 33 minutes ago4 days ago 2 weeks, 6 days ago 4 months agoOver a year ago正如您所看到的,我目前正在使用CodeIgniter函数来简化此操作 - 但是如果有任何本机PHP函数可以执行我想要的操作,那就太棒了.
谢谢你的帮助!
插口
这最好在表示层的客户端完成.这是一个JS解决方案:
Timeago是一个jQuery插件,可以轻松支持自动更新模糊时间戳(例如"4分钟前"或"约1天前").
Timeago将使用classtimeago和ISO 8601时间戳中的所有abbr元素title:
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
Run Code Online (Sandbox Code Playgroud)
进入这样的事情:
<abbr class="timeago" title="July 17, 2008">about a year ago</abbr>
Run Code Online (Sandbox Code Playgroud)
要将日期转换为ISO 8601格式,您可以执行以下操作:
<?= date("c", $post_date) ?>
Run Code Online (Sandbox Code Playgroud)
例子:
你不到一分钟就打开了这个页面.(这会每分钟更新一次.等等.)
此页面最后修改11天前.
瑞恩出生于31年前.