gpt4 book ai didi

php - 格式化MySql时间显示给客户端,undefined offset错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:25 26 4
gpt4 key购买 nike

我有一个函数应该计算一篇文章是在多长时间前写的,然后返回它在被调用时得到的任何值。但是我收到通知消息,这是一个我不想抑制但要解决的错误。

function getTimeAgo($date,$granularity=1){

$values = explode(" ",$date);
$time = new DateTime('now', new DateTimeZone('UTC'));//GET CURRENT UTC TIME
$date = $values[2] . "-" . $values[1] . "-" . $values[5] . " " . $values[3];
$difference = strtotime($time->format('Y-m-d H:i:s')) - strtotime($date);
$retval='';
$periods = array('decade' => 315360000,
'year' => 31536000,
'month' => 2628000,
'week' => 604800,
'day' => 86400,
'hour' => 3600,
'min' => 60,
'sec' => 1);

foreach ($periods as $key => $value) {
if ($difference >= $value) {
$time = floor($difference/$value);
$difference %= $value;
$retval .= ($retval ? ' ' : '').$time.' ';
$retval .= (($time > 1) ? $key.'s' : $key);
$granularity--;
}
if ($granularity == '0') { break; }
}
return $retval.' ago';
}

错误:在此特定位置存在 undefined offset [2]、[1]、[5] 和 [3]

$date = $values[2] . "-" . $values[1] . "-" . $values[5] . " " . 

最佳答案

您的函数接受 $date 值为 2013-12-01 08:16:32

这样做

$values = explode(" ",$date);

会给你数组作为

$values[0] = 2013-12-01
$values[1] = 08:16:32

所以

$date = $values[2] . "-" . $values[1] . "-" . $values[5] . " " 

不会有索引 2,5....

如果函数接收到空数据,则执行 explode 将返回所有无效索引。

您可以直接在参数中使用 $date

$difference = strtotime($time->format('Y-m-d H:i:s')) - strtotime($date);

如果传递的值的格式为 2013-12-01 08:16:32

关于php - 格式化MySql时间显示给客户端,undefined offset错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499400/

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