gpt4 book ai didi

php - 比较 MYSQL 时间戳以检索以特定单位传递的时间

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

这是我设计的一个 PHP 函数,它应该确定以秒、分钟、小时、天、周、月和年为单位耗时量 - 取决于它在哪个括号下面。然而我注意到返回的值似乎比实际时间增加得更快(在 30 分钟内,它输出“1 周前”)。我想知道 $time 是否实际上以毫秒为单位?也就是说,在前 2 分钟它会输出相对准确的结果。

注意:在 1and1 主机上运行。

这是函数:

function get_relative_date($conn,$date,$post_id){
#get current timestamp
$q = "SELECT NOW() - INTERVAL 1 HOUR - `timestamp` FROM `posts` WHERE id=".$post_id.";";
# - INTERVAL 1 HOUR added due to server running 1 hour ahead.
$result = mysqli_query($conn,$q);
if ($result != null && $result != false){
$row = mysqli_fetch_array($result,MYSQLI_BOTH);
$time = $row[0]; #time passed since post

$min = 60;
$hour = $min*60;
$day = $hour*24;
$week = $day*7;
$month = $week*4;
$year = $month*12;

if ($time < $min){
return $time." secs ago";
}
if ($time < $hour){
return round(($time / $min))." mins ago";
}
if ($time < $day){
return round(($time / $hour))." hours ago";
}
if ($time < $week){
return round(($time / $day))." days ago";
}
if ($time < $month){
return round(($time / $week))." weeks ago";
}
if ($time < $year){
return round(($time / $month))." months ago";
}
if ($time >= $year){
return round(($time / $year))." years ago.";
}
return false;
}
}

干杯。

最佳答案

我尝试了你的查询,我收到的不是 2 分 40 秒(以秒为单位),而是 240,而不是 1 小时 3 分 40 秒(以秒为单位),我收到的是 10340。

你需要这个:

SELECT TIME_TO_SEC(TIMEDIFF(NOW(),`timestamp`)) FROM `posts` ...

这将选择以秒为单位的时间差,并希望为您提供所需的结果。

关于php - 比较 MYSQL 时间戳以检索以特定单位传递的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41774359/

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