4
下面是我的功能,将采取一个时间戳,告诉你,从现在的23天格式中通过3小时4分6秒可以将我的PHP时间差,功能得到改善呢?
主要的问题是在我的网站我使用MySQL的DATETIME时间而不是TIMESTAMP的所以要使用这个功能我必须将时间值转换从MySQL到一个时间戳,然后通过我的功能运行。
所以我很好奇,有没有更好的方式来做到这一点,在一些网页上,我有100个MySQL的结果,PHP必须100个日期转换为时间戳,然后对其中100运行此。
我只是想知道是否有更好的表现方法,请不要推荐所有的PHP框架(Zend公司等)
感谢任何提示/帮助
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;
}