php中时差怎么改,我的PHP时差功能可以改进吗?

下面是我的函数,它将采用时间戳并告诉你从现在开始的时间,格式为23天3小时4分6秒

主要问题是在我的网站上我使用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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值