• Xでシェア
  • LINEでシェア
  • このエントリーをはてなブックマークに追加

PHP mktime関数の使い方

この記事のポイント

mktime関数を使ったUnixタイムスタンプ生成の仕組みを理解し、効率的な日時処理を習得できます。

  • 基本的なタイムスタンプ生成から応用的な日時計算まで幅広く対応
  • 実際のプロジェクトで活用できる具体的なコード例を多数紹介
  • 初心者でも迷わない分かりやすい解説と実行結果付きサンプル

この記事を読むことで、mktime関数の基礎から実践的な活用方法まで体系的に学習できます。

目次

mktime関数とは?

mktime関数は、指定した日時からUnixタイムスタンプを生成する標準関数です。Unixタイムスタンプとは、1970年1月1日午前0時からの経過秒数を表す数値で、世界共通の時刻表現として広く使用されています。この関数を使用することで、年、月、日、時、分、秒を個別に指定してタイムスタンプを作成でき、日付計算やデータベースとの連携において非常に重要な役割を果たします。

なお、PHP8.0以降は「時」のパラメータが必須で、「時」以外の引数を省略した場合は現在値が使用され、柔軟な日時操作が可能です。

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

基本構文

mktime関数の基本的な構文は以下の通りです。関数には6つの引数を指定できます。

<?php $timestamp = mktime(0, 0, 0, 1, 1, 2025); echo "タイムスタンプ: " . $timestamp; ?>

出力結果

タイムスタンプ: 1735689600

引数を一部省略して現在時刻のタイムスタンプを取得することも可能です。以下は「時」のみを指定しており、それ以外の省略された部分は現在の値を返します。

<?php $currentTimestamp = mktime(0); echo "現在のタイムスタンプ: " . $currentTimestamp; ?>

出力結果(例)

現在のタイムスタンプ: 1698765432

※実行する時刻によって結果は変動します

実用例

以下では、mktime関数を実際のプログラミングで活用する際の具体的なサンプルコードを紹介します。すべてのコードは即座に実行可能な形で記載しており、初心者の方でも安心して学習を進められます。コードの前後には詳しい解説を付けているため、処理の流れを理解しながら進めることができます。

特定の日時のタイムスタンプ生成

ライオンの誕生日である2023年6月15日のタイムスタンプを生成します。イベント管理やデータベース登録で頻繁に使用される基本的な例です。

<?php $lionBirthday = mktime(0, 0, 0, 6, 15, 2023); echo "ライオンの誕生日: " . date('Y年m月d日', $lionBirthday) . "\n"; echo "タイムスタンプ: " . $lionBirthday; ?>

出力結果

ライオンの誕生日: 2023年06月15日
タイムスタンプ: 1686787200

月末日の取得

ゾウの健康診断を毎月末に実施する場合のスケジュール管理の例です。翌月の0日を指定することで、自動的に当月の最終日が取得できます。

<?php $lastDay = mktime(0, 0, 0, 11, 0, 2023); echo "ゾウの健康診断日: " . date('Y年m月d日', $lastDay) . "\n"; echo "月末日: " . date('d日', $lastDay); ?>

出力結果

ゾウの健康診断日: 2023年10月31日
月末日: 31日

日付の加算・減算

パンダの餌やりスケジュールを管理するため、基準日から30日後の日付を計算する例です。日数に30を加算することで未来の日付を簡単に取得できます。

<?php $baseDate = mktime(0, 0, 0, 10, 1, 2025); $feedingDate = mktime(0, 0, 0, 10, 31, 2025); echo "パンダの餌やり開始: " . date('Y年m月d日', $baseDate) . "\n"; echo "新しいえさの検討: " . date('Y年m月d日', $feedingDate); ?>

出力結果

パンダの餌やり開始: 2025年10月01日
新しいえさの検討: 2025年10月31日

曜日の判定

トラの散歩を毎週日曜日に実施します。指定した日付の曜日を判定する例です。date関数のwオプションを使用して数値で曜日を取得し、条件分岐で処理を行います。

<?php $tigerWalk = mktime(0, 0, 0, 10, 15, 2025); $dayOfWeek = date('w', $tigerWalk); echo "トラの散歩日: " . date('Y年m月d日', $tigerWalk) . "\n"; echo "曜日判定: " . ($dayOfWeek == 0 ? "散歩の日です" : "散歩はお休みです"); ?>

出力結果

トラの散歩日: 2025年10月15日
曜日判定: 散歩はお休みです

年齢計算

サルの現在の年齢を計算する例です。誕生日と現在日時のタイムスタンプの差を利用して、正確な年齢を求めることができます。

<?php $monkeyBirth = mktime(0, 0, 0, 3, 20, 2020); $currentTime = mktime(0, 0, 0, 10, 15, 2025); $ageSeconds = $currentTime - $monkeyBirth; $ageYears = floor($ageSeconds / (365.25 * 24 * 3600)); echo "サルの年齢: " . $ageYears . "歳"; ?>

出力結果

サルの年齢: 5歳

イベント日程の管理

ウサギの運動会を毎年同じ日に開催するためのイベント管理システムの例です。年度を変更するだけで次回開催日を自動計算できます。

<?php $rabbitEvent2025 = mktime(9, 0, 0, 5, 20, 2025); $rabbit_event_2026 = mktime(9, 0, 0, 5, 20, 2026); echo "今年のウサギ運動会: " . date('Y年m月d日 H時', $rabbitEvent2025) . "\n"; echo "来年の運動会: " . date('Y年m月d日 H時', $rabbit_event_2026); ?>

出力結果

今年のウサギ運動会: 2025年05月20日 09時
来年の運動会: 2026年05月20日 09時

営業日の計算

キリンの診察は平日のみ実施します。土日を除外した営業日を計算する例です。曜日判定と組み合わせることで、効率的なスケジュール管理が可能です。

<?php $giraffeCheckup = mktime(0, 0, 0, 10, 16, 2025); $dayCheck = date('w', $giraffeCheckup); $isWeekday = ($dayCheck >= 1 && $dayCheck <= 5); echo "キリンの診察日: " . date('Y年m月d日', $giraffeCheckup) . "\n"; echo "営業日判定: " . ($isWeekday ? "診察可能日" : "休診日"); ?>

出力結果

キリンの診察日: 2025年10月16日
営業日判定: 診察可能日

まとめ

mktime関数は、Unixタイムスタンプを生成してさまざまな日時操作を可能にする強力なツールです。基本的な構文から実践的な活用方法まで理解することで、効率的なプログラム開発が実現できます。

mktime関数の活躍する場面

  • データベースでの日時データ管理と検索処理での高速化
  • イベント管理システムでのスケジュール自動計算機能
  • ECサイトでの商品期限管理と在庫システム連携

重要なポイント

  • 引数の順序と省略可能な特性を正しく理解した使用
  • タイムスタンプとdate関数を組み合わせた柔軟な表示
  • 範囲外の値を利用した自動調整機能の活用方法

これらの知識を身につけることで、mktime関数を使った効果的な日時処理システムの構築が可能になります。実際のプロジェクトでは、ユーザーの利便性向上とシステムの信頼性確保に大きく貢献するでしょう。継続的な学習と実践を通じて、より高度な日時操作テクニックを習得していくことをお勧めします。

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

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