mysql — не могу реализовать эту функцию timeAgo в цикле PHP

Я пытаюсь заставить PHP показать мне некоторые временные функциональные возможности. Я перебираю результаты из таблицы Mysql, в которой есть имя столбца с именем «aplicationdate», формат которого в базе данных — «Ymd». Но он просто показывает некоторые большие отрицательные числа, такие как -16328. и любая помощь будет принята с благодарностью:

<? php

function timeAgo($time_ago) {
$cur_time = date('Y-m-d');
$time_elapsed = $cur_time - $time_ago;

$days = round($time_elapsed / 86400);
$weeks = round($time_elapsed / 604800);
$months = round($time_elapsed / 2600640);
$years = round($time_elapsed / 31207680);

//Days
if ($days <= 7) {
if ($days == 1) {
echo "yesterday";
} else {
echo "$days days ago";
}
}
//Weeks
else if ($weeks <= 4.3) {
if ($weeks == 1) {
echo "a week ago";
} else {
echo "$weeks weeks ago";
}
}
//Months
else if ($months <= 12) {
if ($months == 1) {
echo "a month ago";
} else {
echo "$months months ago";
}
}
//Years
else {
if ($years == 1) {
echo "one year ago";
} else {
echo "$years years ago";
}
}
}

?>

И вот как это реализовано в другом файле с именем profile.php, файл timeago включен в этот

 <? php

$mysqli = new mysqli("localhost", "root", "", "cx");

/* check connection */
if ($mysqli - > connect_errno) {
printf("Connect failed: %s\n", $mysqli - > connect_error);
exit();
}$idced_history = $_GET['idced'];

$query = "SELECT * FROM applications WHERE idced='$idced_history'";

if ($result = $mysqli - > query($query)) {

while ($row = $result - > fetch_assoc()) {

$curenttime = $row["applicationdate"];
$time_ago = strtotime($curenttime);

echo "<br><b>Applied On:</b> ".$row["applicationdate"]."  ".timeAgo($time_ago)."  <br>";}

$result - > free();
}

$mysqli - > close();
?>

0

Решение

$cur_time это строка, а не число. Похоже, вам нужно преобразовать его в метку времени Unix перед его использованием. Так что используйте time() вместо date():

 $cur_time  = time();

(Это предполагает $time_ago также является меткой времени Unix)

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]