カテゴリ: PHP 更新日: 2025/12/10

PHPのUnixタイムスタンプの使い方を徹底解説!初心者でもわかる日付と時間の扱い方

PHP のUnixタイムスタンプの使い方
PHP のUnixタイムスタンプの使い方

先生と生徒の会話形式で理解しよう

生徒

「先生、PHPで時間や日付を扱いたいんですが、『タイムスタンプ』って何のことですか?」

先生

「タイムスタンプというのは、時間を数字で表したもので、特に『Unixタイムスタンプ』といって、1970年1月1日午前0時からの秒数を使う方法が一般的です。」

生徒

「なるほど。でも、なぜそんな数字を使うんですか?」

先生

「実は、コンピュータにとっては『年月日』よりも、秒で表す方が扱いやすいからなんです。では、具体的にPHPでの使い方を一緒に見ていきましょう!」

-

1. Unixタイムスタンプとは?

1. Unixタイムスタンプとは?
1. Unixタイムスタンプとは?

Unix(ユニックス)タイムスタンプとは、1970年1月1日00:00:00(世界標準時、UTC)からの経過秒数を数字で表したものです。

たとえば「1694006400」という数字があった場合、それは「2023年9月6日 00:00:00」を表しています。

PHPではこのタイムスタンプを使うことで、日付の比較・計算・保存などがとても簡単になります。

2. 現在のUnixタイムスタンプを取得する方法

2. 現在のUnixタイムスタンプを取得する方法
2. 現在のUnixタイムスタンプを取得する方法

今この瞬間のタイムスタンプをPHPで取得するには、time()という関数を使います。とても簡単です。


<?php
$now = time();
echo "現在のUnixタイムスタンプは: " . $now;
?>

time()は、何も引数を渡さずに使えます。毎秒値が変わりますので、今の「時間」を正確に数字で取得できます。

3. タイムスタンプを「年月日」に変換する

3. タイムスタンプを「年月日」に変換する
3. タイムスタンプを「年月日」に変換する

数字のままだと人間には読みにくいので、「2025年9月3日」などの形式に変換してみましょう。PHPのdate()関数を使います。


<?php
$timestamp = 1756857600;
$format = date("Y年m月d日 H時i分s秒", $timestamp);
echo $format;
?>

Yは年、mは月、dは日、Hは時、iは分、sは秒を意味します。

4. 「年月日」をタイムスタンプに変換する方法

4. 「年月日」をタイムスタンプに変換する方法
4. 「年月日」をタイムスタンプに変換する方法

逆に、「2025年9月3日」のような日付から、Unixタイムスタンプに変換することも可能です。strtotime()という関数を使います。


<?php
$timestamp = strtotime("2025-09-03 00:00:00");
echo $timestamp;
?>

strtotime()は、日付の文字列を受け取って、それをタイムスタンプに変換してくれます。

-

5. タイムスタンプを使って日付の差を計算してみよう

5. タイムスタンプを使って日付の差を計算してみよう
5. タイムスタンプを使って日付の差を計算してみよう

たとえば「イベントまであと何日?」を計算したいとき、Unixタイムスタンプを使えば簡単です。


<?php
$today = time();
$event = strtotime("2025-12-31");
$diff = $event - $today;
$days = floor($diff / 86400); // 1日=86400秒
echo "イベントまであと " . $days . " 日です。";
?>

このように「秒数」で計算してから、1日が86400秒であることを利用して「日数」に変換します。

6. タイムスタンプの保存や比較にも使える

6. タイムスタンプの保存や比較にも使える
6. タイムスタンプの保存や比較にも使える

Unixタイムスタンプは、データベースに保存したり、ログに記録したり、未来の予定を比較するのにとても便利です。

たとえば、ユーザーの最終ログイン時間をタイムスタンプで保存しておけば、「最後のログインから何日経ったか」もすぐに計算できます。

7. タイムゾーン(時間帯)に注意しよう

7. タイムゾーン(時間帯)に注意しよう
7. タイムゾーン(時間帯)に注意しよう

PHPのタイムスタンプは、基本的にサーバーの設定によって「どこの国の時間」を基準にするかが変わります。

日本時間に合わせたい場合は、次のように設定を入れておきましょう。


<?php
date_default_timezone_set("Asia/Tokyo");
?>

これで、日本時間でタイムスタンプが扱えるようになります。

8. 応用:現在時刻から1時間後のタイムスタンプを取得

8. 応用:現在時刻から1時間後のタイムスタンプを取得
8. 応用:現在時刻から1時間後のタイムスタンプを取得

たとえば「1時間後に処理をしたい」「30分後の予約を作成したい」といったケースでは、以下のように計算します。


<?php
$now = time();
$afterOneHour = $now + 3600;
echo "1時間後のタイムスタンプは: " . $afterOneHour;
?>

3600は「1時間=3600秒」を意味します。分単位なら60、日数なら86400を使います。

まとめ

まとめ
まとめ

今回は、PHPにおけるUnixタイムスタンプの基本から応用までを丁寧に学びました。Unixタイムスタンプとは、1970年1月1日午前0時(UTC)からの経過秒数を意味する、コンピュータにとって扱いやすい時間の表現方法です。PHPではこのタイムスタンプを使うことで、日付の取得・変換・比較・計算が非常に効率よく行えます。

特に、現在時刻を取得するtime()、人間が読みやすい形式に変換するdate()、日付文字列をタイムスタンプに変換するstrtotime()の使い方は、日付処理をするうえで頻出する重要な関数です。また、1日や1時間を秒単位で計算することで、イベントまでの日数や経過時間を自在に求めることができるのも便利なポイントです。

PHPのタイムスタンプは、データベースに保存したり、ログの記録、スケジュール機能など、実際のWebアプリケーションでも非常に多く使われています。ただし、注意点としては「タイムゾーンの設定」を忘れずに行うことです。日本で利用する場合は、date_default_timezone_set("Asia/Tokyo")で明示的に指定しておきましょう。

応用として「今から1時間後」「今日から30日後」など、未来の時間を指定したい場合も、タイムスタンプに秒数を加算するだけで簡単に実現できます。逆に「過去から何日経ったか」を知りたいときは、2つのタイムスタンプの差を86400で割るだけで日数が求められるため、非常に便利です。

1時間後の処理を予約する例


<?php
$now = time();
$oneHourLater = $now + 3600;
echo "処理は1時間後のタイムスタンプでスケジュールされました:" . $oneHourLater;
?>

実際の業務では、リマインダー機能や予約投稿などでこのような時間処理を活用します。PHPのタイムスタンプを理解しておくことは、日付操作を自在に扱える力につながります。

先生と生徒の振り返り会話

生徒

「先生、Unixタイムスタンプってただの数字に見えましたけど、すごく便利なんですね!」

先生

「そのとおりです。数字だからこそ比較や計算がしやすく、PHPでも非常によく使われるんですよ。」

生徒

「今日からのイベントまでの日数や、ログインからの経過時間なんかも簡単にわかるんですね!」

先生

「そうですね。time()strtotime()date()を使いこなせば、どんな時間処理も思い通りにできますよ。次は、もっと複雑な日付計算も挑戦してみましょうか。」

生徒

「はい!タイムゾーンの設定も忘れずに使っていきます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPで使われるUnixタイムスタンプとは何ですか?

Unixタイムスタンプとは、1970年1月1日午前0時(UTC)からの経過秒数を表す数字で、PHPでは日付の計算や保存に広く使われています。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
New2
PHP
PHPのスコープとは?グローバル・ローカル・スーパーグローバルを完全解説!
New3
PHP
PHPの演算子をやさしく解説!算術・比較・論理・ビット演算子の使い方
New4
PHP
PHP の変数とは?基本的な使い方とデータ型を徹底解説!
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.4
Java&Spring記事人気No4
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.5
Java&Spring記事人気No5
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.6
Java&Spring記事人気No6
PHP
PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方
No.7
Java&Spring記事人気No7
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.8
Java&Spring記事人気No8
PHP
PHP のデータ型を完全ガイド!初心者でもわかる int, string, float, bool など
-
-