ホームページ >バックエンド開発 >PHPチュートリアル >PHP でタイムスタンプを人間が判読できる相対日付と時刻に変換するにはどうすればよいですか?
PHP では、タイムスタンプを、過去と将来のタイムスタンプの両方で機能する使いやすい相対日付/時刻文字列に簡単に変換できます。 。タイムスタンプをこの形式に適合させることで、直感的な時間表現を提供してユーザー エクスペリエンスを向上させることができます。
この変換を実行するには、次の関数を利用できます:
function time2str($ts) { // Handle non-numeric timestamps if (!ctype_digit($ts)) { $ts = strtotime($ts); } $diff = time() - $ts; // Handle current time if ($diff == 0) { return 'now'; } // Handle past timestamps if ($diff > 0) { $day_diff = floor($diff / 86400); if ($day_diff == 0) { // Handle minutes and hours ago if ($diff < 60) { return 'just now'; } elseif ($diff < 120) { return '1 minute ago'; } elseif ($diff < 3600) { return floor($diff / 60) . ' minutes ago'; } elseif ($diff < 7200) { return '1 hour ago'; } elseif ($diff < 86400) { return floor($diff / 3600) . ' hours ago'; } } elseif ($day_diff == 1) { return 'Yesterday'; } elseif ($day_diff < 7) { return $day_diff . ' days ago'; } elseif ($day_diff < 31) { return ceil($day_diff / 7) . ' weeks ago'; } elseif ($day_diff < 60) { return 'last month'; } else { return date('F Y', $ts); } } // Handle future timestamps else { $diff = abs($diff); $day_diff = floor($diff / 86400); if ($day_diff == 0) { // Handle minutes and hours from now if ($diff < 120) { return 'in a minute'; } elseif ($diff < 3600) { return 'in ' . floor($diff / 60) . ' minutes'; } elseif ($diff < 7200) { return 'in an hour'; } elseif ($diff < 86400) { return 'in ' . floor($diff / 3600) . ' hours'; } } elseif ($day_diff == 1) { return 'Tomorrow'; } elseif ($day_diff < 4) { return date('l', $ts); } elseif ($day_diff < 7 + (7 - date('w'))) { return 'next week'; } elseif (ceil($day_diff / 7) < 4) { return 'in ' . ceil($day_diff / 7) . ' weeks'; } elseif (date('n', $ts) == date('n') + 1) { return 'next month'; } else { return date('F Y', $ts); } } }
この関数を使用するを使用すると、タイムスタンプから使いやすい相対日付/時刻文字列を簡単に生成できます。
以上がPHP でタイムスタンプを人間が判読できる相対日付と時刻に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。