コメントが投稿されてからどれくらいの時間が経過したかを表示しようとしています。私は今混乱しています。多くの方法を試していますが、うまくいかないようです。
私のコードは、出力として数年前に与えたばかりです。
ここに私のコードがあります:
$date = new DateTime();
$newtime = $date->format('U');
$oldtime = $row['time'];
$diffrence = $newtime - $oldtime;
$date = new DateTime("@$diffrence");
$sect = round($date->format('s'));
$mint = round($date->format('i'));
$hout = round($date->format('H'));
$dayt = round($date->format('d'));
$mont = round($date->format('m'));
$yeat = round($date->format('Y'));
if ($yeat > 1970){
$disptime = "years ago";
} else if ($yeat < 1970) {
$disptime = "$mont months ago";
} else if ($mont < 0) {
$disptime = "$dayt days ago";
} else if ($dayt < 0) {
$disptime = "$hout hours $mint min ago";
} else if ($hout < 0) {
$disptime = "$mint min $sect sec ago";
} else {
$disptime = "$sect sec ago";
}
0から1970年に変更した後、ソリューションに近づく編集
解決済みですが、他の方法でチュートリアルを見つけて、ここで独自のコードを作成することは解決されました
$start_date = new DateTime($row['timestamp']);
$since_start = $start_date->diff(new DateTime($date->format('Y-m-d H:i:s')));
$yeat = $since_start->y;
$mont = $since_start->m;
$dayt = $since_start->d;
$hout = $since_start->h;
$mint = $since_start->i;
$sect = $since_start->s;
if ($mint == 0 && $hout == 0 && $dayt == 0 && $mont == 0 && $yeat == 0){
$disptime = "$sect sec ago";
} else if ($hout == 0 && $dayt == 0 && $mont == 0 && $yeat == 0) {
$disptime = "$mint min ago";
} else if ($dayt == 0 && $mont == 0 && $yeat == 0) {
$disptime = "$hout hours ago";
} else if ($mont == 0 && $yeat == 0) {
$disptime = "$dayt days ago";
} else if ($yeat == 0) {
$disptime = "$mont months ago";
} else {
$disptime = "$yeat years ago";
}