gpt4 book ai didi

php - 使 PHP/MySQL 时间戳看起来更有吸引力

转载 作者:行者123 更新时间:2023-11-29 04:04:15 25 4
gpt4 key购买 nike

基本上,我目前正在从我的 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>

如果您不使用 CodeIgniter,除了 echo timespan() 之外,所有内容都是标准的 PHP。 CodeIgniter 只是将其作为“英语”时间跨度回应。因此,示例输出为:

2 个月,4 周,5 小时,20 分钟前

这一切都很好,但是,我想让它看起来更好......逗号太多而且有点太长(我知道,我很挑剔......)。我喜欢的是:

  1. 如果时间跨度小于一天,则输出应为 7 小时 33 分钟前
  2. 如果时间跨度小于一周,输出应该是4 天前
  3. 如果时间跨度小于一个月,输出应该是2 周,6 天前
  4. 如果时间跨度超过一个月,输出应该是4 个月前
  5. 如果时间跨度超过一年,输出应该是一年前

如您所见,我目前正在使用 CodeIgniter 函数来简化此操作 - 但如果有任何 native PHP 函数可以执行我想要的操作,那就太棒了。

感谢您的帮助!

jack

最佳答案

这最好在表示层的客户端完成。这是一个 JS 解决方案:

Timeago是一个 jQuery 插件,可以轻松支持自动更新模糊时间戳(例如“4 分钟前”或“大约 1 天前”)。

Timeago 将转换所有 class timeago 和 title 中的 ISO 8601 时间戳的 abbr 元素:

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>

像这样:

<abbr class="timeago" title="July 17, 2008">about a year ago</abbr>

要将日期转换为 ISO 8601 格式,您可以这样做:

<?= date("c", $post_date) ?>

例子:

You opened this page less than a minute ago. (This will update every minute. Wait for it.)

This page was last modified 11 days ago.

Ryan was born 31 years ago.

关于php - 使 PHP/MySQL 时间戳看起来更有吸引力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3169194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com