php实例代码:时间友好格式化_PHP教程

php教程评论208 views阅读模式

php实例代码:时间友好格式化,请看代码:

Copy to Clipboard引用的内容:
[www.bkjia.com]

class DateFormat

{

private static $_DIFF_FORMAT = array(

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

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

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

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

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

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

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

);

/**

* 友好格式化时间

*

* @param int 时间

* @param array $formats

* @return string

*/

public static function diff($timestamp, $formats = null)

{

if ($formats == null) {

$formats = self::$_DIFF_FORMAT;

}

/* 计算出时间差 */

$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;

}

}

echo DateFormat::diff('1310455823');

/* 33分钟47秒前 */

企鹅博客
  • 本文由 发表于 2020年8月15日 12:00:03
  • 转载请务必保留本文链接:https://www.qieseo.com/309188.html

发表评论