PHP timeの使い方

この記事のポイント

プログラムを書いていると「今何時か」や「どのくらい時間が経ったか」を活用したい場面が多々あります。
time関数を使うと、このような時間の確認や計算を簡単に行うことができます。

この記事を読むと、次のようなことが身に付きます。

  • 現在の時刻を数値として取得する方法がわかる
  • 時間の計算や比較処理の具体的なテクニックを知る
  • ユーザー登録時刻の記録やセッション管理など実践的な機能を知る

time関数を使いこなせるようになって、より実用的で効率的なPHPコードを書けるようになりましょう。

目次

timeとは?

time関数は、現在の時刻を数値として取得するための関数です。

例えば、「ユーザーがいつ会員登録したか」や「ログインしてからどのくらい時間が経ったか」といった確認をするときに使います。

この関数の便利な点は、時刻を数値で扱うため、時間の計算や比較がとても簡単にできることです。

time関数の特徴を見てみましょう。

time関数の特徴

  • 引数なしで呼び出すだけで現在の時刻を取得できる
  • 結果は数値(整数)で返されるため、計算や比較が簡単
  • UNIXタイムスタンプという世界共通の形式
  • date関数と組み合わせることで、見やすい形式に変換できる

UNIXタイムスタンプとは、1970年1月1日午前0時からの経過秒数を表す数値のことです。世界中のコンピューターで共通して使われている時刻の表現方法です。

実際の開発では、ユーザーの登録時刻やログイン時刻の記録、セッション管理など、さまざまな場面で重要な役割を果たします。

【関連】
PHPをもっと詳しく学ぶならpaizaラーニング

基本構文

time関数の使い方はとてもシンプルです。括弧の中に何も書かずに呼び出すだけで、現在の時刻を数値として取得できます。

結果は整数で返ってきます。この数値を使って、時間の計算をしたり他の関数と組み合わせたりして使うことも多いです。

まずは、基本的な使用例を見てみましょう。

<?php // 現在のタイムスタンプを取得 $currentTime = time(); echo $currentTime;

出力(例)

1703825400

このプログラムでは、time()で現在の時刻を数値として取得し、$currentTimeに代入しています。表示される数値は、1970年1月1日からの経過秒数です。

次に、この数値を人間が読みやすい形式に変換する例も見てみましょう。

<?php // タイムスタンプを日時形式で表示 $timestamp = time(); $formattedDate = date('Y-m-d H:i:s', $timestamp); echo $formattedDate;

出力(例)

2025-08-03 08:34:27(UTC)

※実行時に出力されるのはUTC形式のため、日本時間とは9時間の時差があります(以後のコードも同様)。

このプログラムでは、time()で取得した数値をdate()関数で「年-月-日 時:分:秒」の形式に変換しています。

date()関数の第一引数で表示形式を指定し、第二引数にtime関数の結果を渡すことで、見やすい形に変換できます。

実際の時刻を把握するため、実際の開発では両方の関数をセットで使用することが多々あります。

実用例

ここからは、time関数を使ったコード例を見ていきましょう。ユーザー管理、セッション管理、ファイル処理など、実務でも活用するような処理です。

このような例を通じて、「現在の時刻を取得してさまざまな処理に活用する」というtime関数の基本的な使い方と考え方を学びましょう。

time関数を使いこなせるようになると、時間に関する処理を効率的に実装できるようになり、より実用的なWebアプリケーションを作れるようになります。

どの例も動物を題材にした身近な内容になっているので、プログラミング初心者の方でも理解しやすくなっているはずです。

ユーザー登録時刻の記録

ユーザーがWebサイトに会員登録したときに、「いつ登録したか」を記録する処理です。ユーザーの名前やメールアドレスと一緒に、登録した時刻も保存しておきます。

<?php $userName = "タロウ"; $registrationTime = time(); echo "ユーザー名: " . $userName . "\n"; echo "登録日時: " . date('Y年m月d日 H:i', $registrationTime);

出力(例)

ユーザー名: タロウ
登録日時: 2023年12月29日 10:30

このプログラムでは、time()で現在の時刻を取得し、$registrationTimeに保存しています。その後、date()関数を使って「Y年m月d日 H:i」の形式で日本語の日付表示に変換しています。

こうすることで、後から「今月は何人登録したか」や「1年前に登録したユーザー」といった情報を簡単に調べることができます。

セッション有効期限チェック

Webアプリケーションでのセッション管理において、ログイン状態の有効期限をチェックする処理です。

ユーザーがログインした時刻から一定時間が経過した場合に、自動的にログアウトさせる仕組みを実装できます。

<?php $loginTime = 1703825400; $currentTime = time(); $sessionDuration = 3600; // 1時間 if (($currentTime - $loginTime) > $sessionDuration) { echo "セッションが期限切れです。再ログインしてください。"; } else { echo "ログイン中です。残り時間: " . ($sessionDuration - ($currentTime - $loginTime)) . "秒"; }

出力結果

セッションが期限切れです。再ログインしてください。

このプログラムでは、現在の時刻($currentTime)からログイン時刻($loginTime)を引くことで、ログインしてからの経過時間を計算しています。

その経過時間がセッション有効時間($sessionDuration)を超えている場合は、期限切れを示すメッセージを表示します。

この処理により、セキュリティを保ちながら、ユーザーが長時間操作しなかった場合に自動的にログアウトする機能を実現できます。

年齢計算システム

生年月日から現在の年齢を自動計算するシステムです。ユーザープロフィールページや年齢制限のあるサービスで使用されます。

タイムスタンプを使用することで、正確な年齢計算が可能になります。

<?php $birthYear = 1990; $birthMonth = 5; $birthDay = 15; $birthTimestamp = mktime(0, 0, 0, $birthMonth, $birthDay, $birthYear); $currentTime = time(); $age = floor(($currentTime - $birthTimestamp) / (365 * 24 * 3600)); echo "ウサギさんの年齢は" . $age . "歳です。";

出力(例)

ウサギさんの年齢は33歳です。

このプログラムでは、mktime()関数で生年月日をタイムスタンプに変換し、現在の時刻から引くことで生きている秒数を計算しています。その秒数を1年の秒数(365 × 24 × 3600)で割ることで年齢を求めています。

floor()関数を使うことで、整数の年齢を取得しています。

ちなみに、mktime()は指定した日付を数値に変換する関数で、floor()は小数点以下を切り捨てて整数にする関数です。

mktime()の引数の順番は「時、分、秒、月、日、年」となります。この例では、「時、分、秒」を0にして日付のみを指定しています。

作業時間計測システム

作業開始から終了までの経過時間を計測するシステムです。プロジェクト管理ツールや勤怠管理システムでよく使用される機能で、正確な作業時間の把握に役立ちます。

<?php $startTime = 1703825400; $endTime = time(); $workDuration = $endTime - $startTime; $hours = floor($workDuration / 3600); $minutes = floor(($workDuration % 3600) / 60); echo "ネコの作業時間: " . $hours . "時間" . $minutes . "分";

出力(例)

ネコの作業時間: 2時間15分

この例では、終了時刻($endTime)から開始時刻($startTime)を引いて作業時間の総秒数を計算しています。その後、3600で割って時間を、余りを60で割って分を求めています。

floor()関数を使ってキリのいい数字にしていることも確認できますね。

イベント期限チェック

特定のイベントやキャンペーンの開催期限をチェックする処理です。

ECサイトのセール期間やイベント告知サイトで、リアルタイムに残り時間を表示する際に活用できます。

<?php $eventEndTime = mktime(23, 59, 59, 12, 31, 2023); $currentTime = time(); $remainingTime = $eventEndTime - $currentTime; if ($remainingTime > 0) { $days = floor($remainingTime / (24 * 3600)); echo "イルカのイベント終了まであと" . $days . "日です。"; } else { echo "イベントは終了しました。"; }

出力結果

イベントは終了しました。

このプログラムでは、mktime()関数でイベント終了時刻を設定し、現在時刻から引くことで残り時間を計算しています。

残り時間が正の数の場合はイベント開催中とみなし、0以下の場合は終了と判定するといった具合です。

日数の計算では、残り秒数を1日の秒数(24 × 3600)で割ることで残り日数を求めています。

データバックアップ判定

定期的なデータバックアップが必要かどうかを判定するシステムです。

最後のバックアップ実行時刻から一定期間が経過した場合に、バックアップ処理を実行するトリガーとして活用することができます。

<?php $lastBackupTime = 1703739000; $currentTime = time(); $backupInterval = 86400; // 24時間 if (($currentTime - $lastBackupTime) >= $backupInterval) { echo "ライオンのデータをバックアップしてください。"; echo "前回バックアップから" . floor(($currentTime - $lastBackupTime) / 3600) . "時間経過"; } else { echo "バックアップは不要です。"; }

出力(例)

ライオンのデータをバックアップしてください。前回バックアップから24時間経過

現在時刻から最後のバックアップ時刻を引いて経過時間を計算し、設定したバックアップ間隔(24時間)と比較しています。経過時間がバックアップ間隔以上の場合は、バックアップが必要と判定します。

この仕組みにより、重要なデータの定期的なバックアップを自動化できます。

投稿記事の新着判定

ブログやニュースサイトで、記事が新着かどうかを判定するシステムです。

投稿から一定時間内の記事に「NEW」マークを表示したり、新着記事一覧を作成したりする際に使用されます。

<?php $postTime = time() - 7200; // 2時間前の投稿 $currentTime = time(); $newThreshold = 86400; // 24時間以内を新着とする if (($currentTime - $postTime) <= $newThreshold) { $hoursAgo = floor(($currentTime - $postTime) / 3600); echo "パンダの記事 [NEW] - " . $hoursAgo . "時間前に投稿"; } else { echo "通常の記事です。"; }

出力結果

パンダの記事 [NEW] - 2時間前に投稿

現在時刻から投稿時刻を引いて経過時間を計算し、新着の基準時間(24時間)と比較しています。

経過時間が基準時間以内の場合は「NEW」マークを表示し、何時間前の投稿かもわかるように表示するようにしていることが確認できますね。

この機能により、読者は新しい記事を素早く見つけることができ、サイトの利便性が向上します。

まとめ

time関数は、現在の時刻を数値として取得する重要な機能です。

この記事では、time関数の基本的な構文から実用的な応用例まで解説しました。time関数の活用場面について振り返ってみましょう。

time関数が活躍する場面

  • ユーザーの登録やログインの時刻を記録したいとき
  • セッションやキャンペーンの有効期限をチェックしたいとき
  • ファイルの更新状況やデータの変更を監視したいとき
  • 定期的な単純処理を自動化したいとき

time関数を使う上で押さえておきたいポイントは次の通りです。

重要なポイント

  • 引数なしで現在時刻を整数として簡単に取得できる
  • date関数と組み合わせることで見やすい日時表示に変換できる
  • 数値として扱うため、時間の計算や比較処理が簡単にできる

初めてPHPを学ぶ方も、この記事で紹介したtime関数の基本的な使い方と8つの実用例を参考に、コードを書いてみてください。

時間処理を適切に行えるようになれば、ユーザーにとって便利で、システムとして信頼性の高いWebアプリケーションを作ることができるようになります。

ぜひtime関数を正しく理解し活用することで、より効率的なPHPプログラムを書けるようになりましょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. PHPのリファレンス記事一覧
  4. PHP timeの使い方