gpt4 book ai didi

PHP,计算自添加以来的时间

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

我有一个函数可以计算自将一行添加到数据库以来耗时:

function added_on($time){
$now = time();
$time = $now - $time;

$blocks = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);

foreach ($blocks as $unit => $size) {
if ($time < $unit)
continue;

$nrOfUnits = floor($time / $unit);
return $nrOfUnits.' '.$size.(($nrOfUnits>1)?'s':'');
}

}

问题是不准确,即误差大约落后 7 小时。当在当前时间调用时,它返回如下:added 7 小时前。函数调用如下:

$posted_on = strtotime($row['created_at']);
echo 'added '.added_on($posted_on).' ago';

其中$row['created_at']是MySQL日期类型

谢谢

最佳答案

乍一看,我猜测是不同的时区。在纯 MySql 中完成相同任务的不同方法如下:

select time_to_sec(timediff(now(), created_at)) as seconds_ago from `table_name`

为了帮助您进行更多调试,您可以使用以下命令检查和设置 mysql 服务器的时区( docs ):

-- Check the global and session time_zone settings
select @@global.time_zone, @@session.time_zone;

-- Set the time zone to GMT -5 hours (EST):
set SESSION time_zone = '-5:00';

关于PHP,计算自添加以来的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15016087/

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