php 友好时间,友好时间输出

# php友好时间输出

*****

>[info]代码

~~~

/**

* 友好时间显示,支持过云时和未来时

* @param $timestamp int 时间戳

* @return null|string

*/

function dateFormat($timestamp)

{

if ($timestamp > time()) {

$formats = array(

'DAY' => '还有%s天',

'DAY_HOUR' => '还有%s天%s小时',

'HOUR' => '还有%s小时',

'HOUR_MINUTE' => '还有%s小时%s分',

'MINUTE' => '还有%s分钟',

'MINUTE_SECOND' => '还有%s分钟%s秒',

'SECOND' => '还有%s秒',

);

$seconds = $timestamp - time();

} else {

$formats = array(

'DAY' => '%s天前',

'DAY_HOUR' => '%s天%s小时前',

'HOUR' => '%s小时',

'HOUR_MINUTE' => '%s小时%s分前',

'MINUTE' => '%s分钟前',

'MINUTE_SECOND' => '%s分钟%s秒前',

'SECOND' => '%s秒前',

);

$seconds = time() - $timestamp;

}

/* 计算出时间差 */

$minutes = floor($seconds / 60);

$hours = floor($minutes / 60);

$days = floor($hours / 24);

if ($days > 0) {

$diffFormat = 'DAY';

} else {

$diffFormat = ($hours > 0) ? 'HOUR' : 'MINUTE';

if ($diffFormat == 'HOUR') {

$diffFormat .= ($minutes > 0 && ($minutes - $hours * 60) > 0) ? '_MINUTE' : '';

} else {

$diffFormat = (($seconds - $minutes * 60) > 0 && $minutes > 0)

? $diffFormat . '_SECOND' : 'SECOND';

}

}

$dateDiff = null;

switch ($diffFormat) {

case 'DAY':

$dateDiff = sprintf($formats[$diffFormat], $days);

break;

case 'DAY_HOUR':

$dateDiff = sprintf($formats[$diffFormat], $days, $hours - $days * 60);

break;

case 'HOUR':

$dateDiff = sprintf($formats[$diffFormat], $hours);

break;

case 'HOUR_MINUTE':

$dateDiff = sprintf($formats[$diffFormat], $hours, $minutes - $hours * 60);

break;

case 'MINUTE':

$dateDiff = sprintf($formats[$diffFormat], $minutes);

break;

case 'MINUTE_SECOND':

$dateDiff = sprintf($formats[$diffFormat], $minutes, $seconds - $minutes * 60);

break;

case 'SECOND':

$dateDiff = sprintf($formats[$diffFormat], $seconds);

break;

}

return $dateDiff;

}

~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值