PHP開発では、多くの場合、タイムスタンプが必要です。タイムスタンプは、1970年1月1日の00:00:00以降の秒数を指します。タイムスタンプの直接処理は直感的ではないため、秒、数分、時間、数日前の相対的な時間形式に変換する必要があります。この記事では、PHPを使用してこのタイムスタンプ変換を実装する方法を共有します。
開始する前に、現在のタイムスタンプを入手してください。 PHPビルトイン関数時間()は、1970年1月1日の00:00:00以降の秒数を表す現在のUNIXタイムスタンプ(整数タイプ)を返すことができます。
<?php
$currentTimestamp = time();
?>
タイムスタンプを「数分前」形式に変換するには、現在のタイムスタンプと指定されたタイムスタンプの違いを計算し、60分間に分割して、結果を返します。
<?php
function convertToTimeAgo($timestamp) {
$difference = time() - $timestamp;
$minutes = floor($difference / 60);
return $minutes . "数分前";
}
$timestamp = 1609459200; // サンプルタイムスタンプ
echo convertToTimeAgo($timestamp); // 出力:xx数分前
?>
同様に、「時間前」形式に変換されたら、差を3600で割って時間数を取得します。
<?php
function convertToTimeAgo($timestamp) {
$difference = time() - $timestamp;
$hours = floor($difference / 3600);
return $hours . "1時間前";
}
$timestamp = 1609459200;
echo convertToTimeAgo($timestamp); // 出力:xx1時間前
?>
「1日前」形式に変換するときは、差を86400、つまり1日秒数で除算し、日数を取得します。
<?php
function convertToTimeAgo($timestamp) {
$difference = time() - $timestamp;
$days = floor($difference / 86400);
return $days . "一日前";
}
$timestamp = 1609459200;
echo convertToTimeAgo($timestamp); // 出力:xx一日前
?>
PHPは、タイムスタンプの相対的な時間への変換を簡単に可能にする強力な時間処理機能を提供します。これは、ポストパブリッシング時間またはソーシャルメディアの動的時間を表示するときに非常に実用的です。現在のタイムスタンプとターゲットタイムスタンプの違いを計算することにより、時間情報のフレンドリーな表示に便利な対応する分、時間、日を取得できます。
実際のプロジェクトでは、ニーズに応じて機能を拡張することもできます。たとえば、数秒前にディスプレイをサポートしたり、ユーザーエクスペリエンスをより思いやりのあるユーザータイムゾーンに応じて時間を調整したりすることもできます。