如:时间刚好是5分钟前,则对应的时间戳就会被格式化为5分钟前,不多说了,直接贴上代码:
<BR>/** <BR>* 格式化时间 <BR>* @param integer $timestamp 时间戳 <BR>* @param string $format dt=日期时间 d=日期 t=时间 u=个性化 其他=自定义 <BR>* @param integer $timeoffset 时区值 <BR>* @param string $custom_format 自定义时间格式 <BR>* @return string <BR>*/ <BR>public function dgmdate( $timestamp, $format = 'dt', $timeoffset = '9999', $custom_format = '' ) { <BR>$return = ''; <BR>$now = time(); <BR>$day_format = 'Y-n-j'; <BR>$time_format = 'H:i:s'; <BR>$date_format = $day_format . ' ' . $time_format; <BR>$offset = 8; //这里默认是东八区,也就是北京时间 <BR>$lang = array( <BR>'before' => '前', <BR>'day' => '天', <BR>'yday' => '昨天', <BR>'byday' => '前天', <BR>'hour' => '小时', <BR>'half' => '半', <BR>'min' => '分钟', <BR>'sec' => '秒', <BR>'now' => '刚刚', <BR>); <BR>$timeoffset = $timeoffset == 9999 ? $offset : $timeoffset; <BR>$timestamp += $timeoffset * 3600; <BR>switch ( $format ) { <BR>case 'dt': <BR>$format = $date_format; <BR>break; <BR>case 'd': <BR>$format = $day_format; <BR>break; <BR>case 't': <BR>$format = $time_format; <BR>break; <BR>} <BR>if ( $format == 'u' ) { <BR>$todaytimestamp = $now - ($now + $timeoffset * 3600) % 86400 + $timeoffset * 3600; <BR>$s = gmdate( empty( $custom_format ) ? $date_format : $custom_format, $timestamp ); <BR>$time = $now + $timeoffset * 3600 - $timestamp; <BR>if ( $timestamp >= $todaytimestamp ) { <BR>if ( $time > 3600 ) { <BR>$return = '<span title="' . $s . '">' . intval( $ti<em style="color:transparent">本文来源gao.dai.ma.com搞@代*码#网</em><a>搞代gaodaima码</a>me / 3600 ) . $lang['hour'] . $lang['before'] . '</span>'; <BR>} elseif ( $time > 1800 ) { <BR>$return = '<span title="' . $s . '">' . $lang['half'] . $lang['hour'] . $lang['before'] . '</span>'; <BR>} elseif ( $time > 60 ) { <BR>$return = '<span title="' . $s . '">' . intval( $time / 60 ) . $lang['min'] . $lang['before'] . '</span>'; <BR>} elseif ( $time > 0 ) { <BR>$return = '<span title="' . $s . '">' . $time . $lang['sec'] . $lang['before'] . '</span>'; <BR>} elseif ( $time == 0 ) { <BR>$return = '<span title="' . $s . '">' . $lang['now'] . '</span>'; <BR>} else { <BR>$return = $s; <BR>} <BR>} elseif ( ($days = intval( ($todaytimestamp - $timestamp) / 86400 )) >= 0 && $days < 7 ) { <BR>if ( $days == 0 ) { <BR>$return = '<span title="' . $s . '">' . $lang['yday'] . gmdate( $time_format, $timestamp ) . '</span>'; <BR>} elseif ( $days == 1 ) { <BR>$return = '<span title="' . $s . '">' . $lang['byday'] . gmdate( $time_format, $timestamp ) . '</span>'; <BR>} else { <BR>$return = '<span title="' . $s . '">' . ($days + 1) . $lang['day'] . $lang['before'] . '</span>'; <BR>} <BR>} else { <BR>$return = $s; <BR>} <BR>} else { <BR>$return = gmdate( $format, $timestamp ); <BR>} <BR>return $return; <BR>} <BR>