> 백엔드 개발 > PHP 튜토리얼 > PHP 형식의 타임스탬프는 친숙한 시간 구현 아이디어와 code_php 기술을 표시합니다.

PHP 형식의 타임스탬프는 친숙한 시간 구현 아이디어와 code_php 기술을 표시합니다.

WBOY
풀어 주다: 2016-05-16 20:34:19
원래의
1119명이 탐색했습니다.

프로젝트의 시간은 항상 2014-10-20 10:22로 표시되어 있어 매우 지루해 보입니다. 웨이보, QQ 스페이스 등의 웹사이트에서는 일반적으로 시간이 몇 초 전, 몇 분 전, 몇 시간 전 등으로 표시되어 읽기 쉽습니다. 그렇다면 PHP를 사용하여 구현하는 방법은 무엇입니까?

일반적인 아이디어는 다음과 같습니다.

새해이고 3일 이상이면 특정 시간으로 표시됩니다

오늘이라면

1분 이내라면 몇 초 전인지 표시됩니다

1시간 이내라면 몇 분 전으로 표시됩니다

현재 날짜이고 1시간 이상이면 몇 시간 전으로 표시됩니다

어제라면 시간은 어제로 표시됩니다

전날이면 그저께 시간으로 표시됩니다

3일 이상인 경우(설날 제외) 해당 월의 날짜를 표시합니다

위의 아이디어를 바탕으로 구현 코드를 작성하는 것은 어렵지 않습니다.

구현 코드는 다음과 같습니다.

//格式化友好显示时间
function formatTime($time){
$now=time();
$day=date('Y-m-d',$time);
$today=date('Y-m-d');

$dayArr=explode('-',$day);
$todayArr=explode('-',$today);

//距离的天数,这种方法超过30天则不一定准确,但是30天内是准确的,因为一个月可能是30天也可能是31天
$days=($todayArr[0]-$dayArr[0])*365+(($todayArr[1]-$dayArr[1])*30)+($todayArr[2]-$dayArr[2]);
//距离的秒数
$secs=$now-$time;

if($todayArr[0]-$dayArr[0]>0 && $days>3){//跨年且超过3天
return date('Y-m-d',$time);
}else{

if($days<1){//今天
if($secs<60)return $secs.'秒前';
elseif($secs<3600)return floor($secs/60)."分钟前";
else return floor($secs/3600)."小时前";
}else if($days<2){//昨天
$hour=date('h',$time);
return "昨天".$hour.'点';
}elseif($days<3){//前天
$hour=date('h',$time);
return "前天".$hour.'点';
}else{//三天前
return date('m月d号',$time);
}
}
}
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿