PHP,从mysql加载时间戳并转换为时间前字符串

Posted

技术标签:

【中文标题】PHP,从mysql加载时间戳并转换为时间前字符串【英文标题】:PHP, load timestamp from mysql and convert into time ago string 【发布时间】:2018-11-30 12:51:06 【问题描述】:

是否可以从 mysql 数据库加载时间戳,用当前时间戳减去它(如果需要)并将其转换为一分钟前、2 分钟前、一小时前等?我需要帮助来显示具有该格式的时间戳。

<?php
function getuser_get($dt)

	$query="SELECT huffid,fullname, photourl, gender, country, city, lastupdate, dob,
		concat('[',(select GROUP_CONCAT('".'"sportname.":"'."',sportname,'".'"'."' SEPARATOR ',') 
		from personal_sport inner join sports on 
		personal_sport.sportid=sports.id where personal_sport.huffid=personal.huffid),']')
		as sports FROM personal 
		order by fullname asc
		limit 20;";
	
	return $query;

?>

在 mysql 数据库中,lastupdate 列格式是这样的2018-06-21 01:05:07,我需要在每次刷新应用程序时将其动态转换为“时间前”。有人可以帮忙吗?提前谢谢你。

【问题讨论】:

是的,很有可能,这是 PHP 方式***.com/questions/1416697/… 【参考方案1】:

由于它被标记为 PHP,这里是使用DateTime::diff 的快速方法:

$date = new DateTime('2017-06-21 01:05:07');
$diff = $date->diff((new DateTime()));
echo $diff->format('%Y years %m months %d days %H hours %i minutes %s seconds ago');

测试时:

01 年 0 个月 0 天 09 小时 53 分 46 秒前

仅显示相关信息请参考this answer(我不会复制粘贴)

【讨论】:

PHP 5 >= 5.3.0 @MangeshSathe 文档可能需要更新此方法,我使用 PHP 7.2 运行它,之前从未遇到过任何问题。只要 OP 没有提到 PHP 版本约束,我就赢了不要改变我的答案。

以上是关于PHP,从mysql加载时间戳并转换为时间前字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP将DATETIME转换为时间前函数,秒,分钟,小时,天等[重复]

将 DateTime.Now 转换为时间前 C# [重复]

php怎么将指定日期转换为时间戳?

急!将mysql中日期转化为时间戳

如何将字符串转换为时间并将其插入 MySQL

php取出mysql表单数据为时间戳,怎么转换成时间格式