Dies ist die Funktion wird verwendet, um "posted-ago" zu berechnen.Rechnen 'vorgebucht' Zeit funktioniert nicht richtig mit strtotime() und date() Funktionen in PHP
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';
}
}
}
Funktionsaufruf:
$time=actionTime(strtotime($prow['time']));
$ prow [ 'Zeit'] in DB ist: 2017-03-14 18:08:45
Problem:
Wenn ich das Ergebnis drucke, wird "gerade jetzt" für viele Minuten angezeigt.
$ estimate_time
zeigt negative Zahl wie um -15000, wenn Echo.
Herstellung:
Wenn die folgende Echo:
echo "time():".time()." posted time:".strtotime($prow['time']);
Es zeigte sich:
time(): 1489496166 veröffentlicht Zeit: 1489511325
Die aktuelle Zeit ist kürzer als die angegebene Zeit. Warum?
Bitte zeigen Sie uns, was Sie in die Funktion in '$ prow sind vorbei [‚Zeit‘]' – RiggsFolly
könnten Sie wahrscheinlich dies erreichen einfacher durch die [Datetime-Klasse] (HTTP : //php.net/manual/en/class.datetime.php) und [DateInterval class] (http://php.net/manual/en/class.dateinterval.php) – RiggsFolly
Wenn '$ estimate_time' ein a zeigt negative Zahl wie '-150000' Sie müssen ein Datum eingeben, das größer ist als JETZT, dh ein Datum oder eine Uhrzeit, die nach jetzt nicht vorher ist – RiggsFolly