ホームページ >バックエンド開発 >PHPチュートリアル >PHP で Unix タイムスタンプから相対日付/時刻文字列を生成するにはどうすればよいですか?
PHP でタイムスタンプから相対日付/時刻を生成する
はじめに
相対日付の決定タイムスタンプに基づく /time は、プログラミングにおける一般的なタスクです。この機能は、さまざまな時間間隔と変換の方向 (過去または将来) を考慮するとより複雑になります。
Answer
以下の関数は、変換に対する包括的なアプローチを提供します。過去と未来の両方を考慮した、相対的な日付/時刻形式への Unix タイムスタンプ (time() 関数を使用して取得)。次のような出力が生成されます:
この関数は、一連の条件ステートメントを使用して適切な時間表現を決定します現在時刻との差に基づいて、タイムスタンプ:
<br>function time2str($ts)<br>{</p> <pre class="brush:php;toolbar:false">// Handle syntax variations if(!ctype_digit($ts)) $ts = strtotime($ts); // Calculate the difference between now and the timestamp $diff = time() - $ts; // Check for exact matches to simplify handling if($diff == 0) return 'now'; // Handle past timestamps if($diff > 0) { // Calculate day difference $day_diff = floor($diff / 86400); // Format past time intervals switch(true) { case ($day_diff == 0): return constructPastInterval($diff); // Hours, minutes, seconds case ($day_diff == 1): return 'Yesterday'; case ($day_diff < 7): return $day_diff . ' days ago'; case ($day_diff < 31): return ceil($day_diff / 7) . ' weeks ago'; case ($day_diff < 60): return 'last month'; default: return date('F Y', $ts); } } // Handle future timestamps else { // Calculate absolute difference $diff = abs($diff); // Calculate day difference and format future time intervals based on logic similar to the past case. }
}
この応答にはconstructPastInterval()関数は示されていませんが、過去の間隔の書式設定を処理します。 (時、分、秒)。
この関数は、タイムスタンプから相対的な日付/時刻表現を生成するための堅牢で多用途のソリューションを提供し、複数のスクリプトや複雑なカスタム コーディングの必要性を排除します。
以上がPHP で Unix タイムスタンプから相対日付/時刻文字列を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。