Aşağıda bir zaman damgası alabilir ve size 23 days 3 hours 4 minutes 6 seconds biçiminde artık geçti zaman anlatacağım benim işlevi olduğunu
Asıl sorun, benim sitede yüzden ben bir zaman damgası mysql benim datetime dönüştürmek ve sonra benim işlevi aracılığıyla çalıştırmak gerekir, bu işlevi kullanmak için mysql'in DATETIME yerine ZAMAN kullanmaktır.
Ben merak ediyorum, bunu yapmak için daha iyi bir yolu ben 100 mysql sonuçları bazı sayfalarda, PHP damgaları 100 tarihleri dönüştürmek gerekir ve daha sonra 100 tanesi bu çalıştırmak var.
Ben daha iyi bir performans yöntem varsa sadece merak ediyorum, ve (vb zend) tüm PHP çerçeveleri tavsiye etmeyiniz
Herhangi bir ipucu / yardım ederiz
function duration($timestamp) {
$years = floor($timestamp / (60 * 60 * 24 * 365));
$timestamp %= 60 * 60 * 24 * 365;
$weeks = floor($timestamp / (60 * 60 * 24 * 7));
$timestamp %= 60 * 60 * 24 * 7;
$days = floor($timestamp / (60 * 60 * 24));
$timestamp %= 60 * 60 * 24;
$hrs = floor($timestamp / (60 * 60));
$timestamp %= 60 * 60;
$mins = floor($timestamp / 60);
$secs = $timestamp % 60;
$str = "";
if ($years == 1) {
$str .= "{$years} year ";
}elseif ($years > 1) {
$str .= "{$years} yearss ";
}
if ($weeks == 1) {
$str .= "{$weeks} week ";
}elseif ($weeks > 1) {
$str .= "{$weeks} weeks ";
}
if ($days == 1) {
$str .= "{$days} day ";
}elseif ($days > 1) {
$str .= "{$days} days ";
}
if ($hrs == 1) {
$str .= "{$hrs} hour ";
}elseif ($hrs > 1) {
$str .= "{$hrs} hours ";
}
if ($mins == 1) {
$str .= "{$mins} minute ";
}elseif ($mins > 1) {
$str .= "{$mins} minutes ";
}
if ($mins < 1 && $secs >= 1) {
$str .= "{$secs} seconds ";
}
return $str;
}