このコードはリンクの下にあり、2日前のように正常に動作しましたが、動作を停止します。私がmysql CURRENT TIMESTAMPから時間を与えたとき、どれくらい時間が経過しても8時間、7時間または6時間しか出力されません。誰かがこれを改善する方法や、より良い方法を知っているなら、ここに投稿してください。私はPHP 5.6とPHP 7でそれを試しても、それを修正することはありません。php time関数が動作してから動作を停止します
例:
$時間= 2017年9月11日午後五時10分51秒
入力:
time_elapsed_string($時間)。
出力:
5時間前
#function from https://stackoverflow.com/questions/1416697/converting-timestamp-to-time-ago-in-php-e-g-1-day-ago-2-days-ago
function time_elapsed_string($datetime, $full = false) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d/7);
$diff->d -= $diff->w * 7;
$string = array(
'y' => 'year',
'm' => 'month',
'w' => 'week',
'd' => 'day',
'h' => 'hour',
'i' => 'minute',
's' => 'second',
);
foreach ($string as $k => &$v) {
if ($diff->$k) {
$v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
} else {
unset($string[$k]);
}
}
if (!$full) $string = array_slice($string, 0, 1);
return $string ? implode(', ', $string) . ' ago' : 'just now';
}
奇妙な出力にその結果が、あなたが入力したタイムスタンプを提供してください。また、それが期待する出力を提供します。 –
デバッグヘルプ(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。 – Script47