PHP 形式のタイムスタンプ表示に適した時間の実装アイデアと code_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:16:08
オリジナル
917 人が閲覧しました

PHP 形式のタイムスタンプ表示に適した時間実装のアイデアとコード

プロジェクトでは、時間が常に 2014-10-20 10:22 と表示されますが、これは非常に退屈に思えます。 Weibo や QQ Space などの Web サイトでは、通常、時刻が数秒前、数分前、数時間前などと読みやすく表示されます。これをフレンドリーな時刻形式と呼びます。では、php を使用して実装するにはどうすればよいでしょうか?

一般的な考え方は次のとおりです:

大晦日で3日以上ある場合は、具体的な時間として表示されます

今日だったら

1分以内であれば何秒前だったかが表示されます

1時間以内であれば数分前と表示されます

同日で1時間以上の場合は数時間前と表示されます

昨日であれば昨日の時刻を表示します

一昨日なら一昨日の時刻を表示します

3日以上(正月を挟まない)の場合は、その月の日を表示します

上記の考えに基づいて、実装コードを書くのは難しくありません:

実装コードは次のとおりです:

//フォーマットフレンドリーな表示時間

関数 formatTime($time){

$now=time();

$day=date('Y-m-d',$time);

$today=date('Y-m-d');

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

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

//この方法は 30 日を超えると正確ではない可能性がありますが、1 か月は 30 日または 31 日になるため、30 日以内であれば正確です。

$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 日以上

戻り日('Y-m-d',$time);

}その他{

if($days if($secs elseif($secs それ以外の場合はフロア($secs/3600)を返します。"時間前";

}else if($days $hour=date('h',$time);

「昨日」を返します。$hour.'point';

}elseif($days $hour=date('h',$time);

「一昨日」を返します.$hour.'point';

}その他{//3 日前

戻り日('m month d',$time);

}

}

}

http://www.bkjia.com/PHPjc/899487.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/899487.html技術記事 PHP 形式のタイムスタンプ表示に適した時刻実装のアイデアとコード プロジェクトでは、時刻が常に 2014-10-20 10:22 と表示されますが、これは非常に退屈に思えます。 Weibo、QQ スペース、その他の Web サイトでは、通常、数秒間表示されます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート