gpt4 book ai didi

php - 使用 PHP 从 TIMESTAMP 字段获取通过日期和时间

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

我在数据库中有一个名为created_at的字段,并以这种格式存储数据:

1980-11-28 04:05:25

所以我想知道自该日期以来已经过去了多少时间,例如:3 秒 || 5 分钟 || 22小时|| 1 天 || 6 周 || 1 个月 || 3 年(请注意 ||,因此可以是此选项中的任何一个,而不是全部)。我不知道是否可以使用 SQL 语言直接从查询中获取此信息,我检查了此 [1] 但找不到正确的函数来执行此操作。所以我想使用 PHP 来获取它,但要么不知道如何做。有谁能帮我吗?

[1] http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

最佳答案

我不确定是否有本地 PHP 函数允许您执行此操作,但是您可以制作一个。我在 http://css-tricks.com/snippets/php/time-ago-function/ 找到了这个并对其进行了编辑,使其更加实用。使用它,我们可以简单地将您的 created_at 字符串放入其中并获得结果。

// The function to get the final string
function timeago($tm,$lim=0) {
$cur_tm = time(); $dif = $cur_tm-$tm;
$pds = array('second','minute','hour','day','week','month','year','decade');
$lngh = array(1,60,3600,86400,604800,2630880,31570560,315705600);
for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);
$no = floor($no); if($no <> 1) $pds[$v] .='s'; $x=sprintf("%d %s",$no,$pds[$v]);
if($lim>1 && ($v >= 1)&&(($cur_tm-$_tm) > 0)) $x .= ', ' . timeago($_tm,$lim-1); else $x .= ' ago';
return $x;
}

// Run the MySQL query to get the string
$query = mysql_query("SELECT `created_at` FROM `table` LIMIT 1");
// Put the string into a PHP variable
$created_at = mysql_result($query,0);

// Show the results
echo timeago($created_at);
// This will output something like '4 years ago' or '12 seconds ago'

// You can fine tune how accurate you want the function to make your 'time ago' string to be by adding a number as the second variable for the function
// For example:
echo timeago($created_at, 6);
// This will output something like '4 decades, 2 years, 7 months, 1 week, 15 hours, 49 minutes, 12 seconds ago'

关于php - 使用 PHP 从 TIMESTAMP 字段获取通过日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11970200/

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