ホームページ >バックエンド開発 >PHPチュートリアル >PHP タイムスタンプの書式設定を表示しやすい時間にする 関数の共有、PHP 関数の共有_PHP チュートリアル

PHP タイムスタンプの書式設定を表示しやすい時間にする 関数の共有、PHP 関数の共有_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:16:291250ブラウズ

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 日前
。 }
}
}

参考程度に、批判や修正、あるいはより良い方法を歓迎します。

phpの日付関数はタイムスタンプを2012-5-3にフォーマットできます

date('Y-n-j', time()); // time() 関数は現在の時刻のタイムスタンプを生成し、独自のタイムスタンプに置き換えることができます


参考: cn2.php.net/manual/zh /function.date.php

PHPのタイムスタンプ関数とは何ですか

time() 現在のタイムスタンプを取得します

strtotime() タイムスタンプに変換します
date('Y-m-d H:i:s',time()) タイムスタンプを時刻に変換します

http://www.bkjia.com/PHPjc/897695.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/897695.html技術記事 PHP のタイムスタンプの書式設定により、時間関数の共有がわかりやすく表示されます。プロジェクト内の PHP 関数の共有時間は常に 2014-10-20 10:22 と表示され、非常に鈍く見えます。通常、Weibo、QQ スペース、その他の Web サイトに表示されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。