これは 'posted-ago'を計算するために使用される関数です。'posted-ago'時間の計算が正しく実行されていません。
function actionTime($ptime)
{
$estimate_time = time() - $ptime;
echo $estimate_time.'<br>';
if($estimate_time < 2) return 'Just now';
$condition = array(
12 * 30 * 24 * 60 * 60 => 'year',
30 * 24 * 60 * 60 => 'month',
24 * 60 * 60 => 'day',
60 * 60 => 'hour',
60 => 'minute',
1 => 'second');
foreach($condition as $secs => $str)
{
$d = $estimate_time/$secs;
if($d >= 1)
{
$r = floor($d);
return $r . ' ' . $str . ($r > 1 ? 's' : '') . ' ago';
}
}
}
関数呼び出し:
$time=actionTime(strtotime($prow['time']));
$の船首[ '時間'] DBでは、次のとおりです。2017年3月14日18時08分45秒
問題:
結果を印刷すると、「今すぐ」というメッセージが数分間表示されます。エコーとき
$ estimate_time
は約-15000のような負の数を示しています。
詳細説明:
以下エコー場合:
echo "time():".time()." posted time:".strtotime($prow['time']);
それは示した:
時間():1489496166 投稿時間:1489511325
現在の時刻がポストされた時刻よりも小さい。どうして?
あなたはおそらくより簡単に[DateTimeクラス](HTTPを使用することによって、これを達成できる – RiggsFolly
'$の船首[「時間」]'で、関数に渡しているものを私たちに示してください。 ://php.net/manual/en/class.datetime.php)と[DateIntervalクラス](http://php.net/manual/en/class.dateinterval.php) – RiggsFolly
'$ estimate_time'が負の数 '-150000'のような日付を入力する必要があります。今は今までにない日付または時刻です。 – RiggsFolly