phpタイムスタンプの書式設定表示に優しい時間関数の共有、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
それ以外の場合は、フロア($秒/3600)を返します。"時間前";
}else if($days
$hour=date('h',$time);
return "昨日".$hour.'point';
}elseif($days
$hour=date('h',$time);
return "一昨日".$hour.'point';
}その他{//3 日前
。
}
}
}
参考程度に、批判や修正、あるいはより良い方法を歓迎します。
date('Y-n-j', time()); // time() 関数は現在の時刻のタイムスタンプを生成し、独自のタイムスタンプに置き換えることができます
参考: cn2.php.net/manual/zh /function.date.php
time() 現在のタイムスタンプを取得します
strtotime() タイムスタンプに変換します
date('Y-m-d H:i:s',time()) タイムスタンプを時刻に変換します
http://www.bkjia.com/PHPjc/897695.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/897695.html技術記事 PHP のタイムスタンプの書式設定により、時間関数の共有がわかりやすく表示されます。プロジェクト内の PHP 関数の共有時間は常に 2014-10-20 10:22 と表示され、非常に鈍く見えます。通常、Weibo、QQ スペース、その他の Web サイトに表示されます...