Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

PHP辞典

  1. トップページ
  2. PHP辞典
  3. date() / time() / mktime()

date() / time() / mktime()対応: PHP 4(2000)

現在の日時やUNIXタイムスタンプを取得し、任意のフォーマットで日付文字列を生成します。PHPで日時を扱う最も基本的な関数群です。

構文
// 日時をフォーマットして文字列で返します。
date($format, $timestamp);

// 現在のUNIXタイムスタンプを取得します。
time();

// 指定した日時のUNIXタイムスタンプを生成します。
mktime($hour, $minute, $second, $month, $day, $year);

// GMTの日時をフォーマットして返します。
gmdate($format, $timestamp);
関数一覧
関数概要
date($format, $timestamp)日時をフォーマット文字列に従って整形します。第2引数を省略すると現在日時が使われます。
time()現在のUNIXタイムスタンプを秒単位の整数で返します。引数は取りません。
mktime($hour, $minute, $second, $month, $day, $year)指定した日時のUNIXタイムスタンプを返します。範囲外の値を指定すると自動的に繰り上げ・繰り下げされます。
gmdate($format, $timestamp)『date()』と同じ動作ですが、ローカルタイムゾーンではなくGMTで出力します。
主なフォーマット文字
文字意味
Y4桁の年2025
m0埋め2桁の月01〜12
d0埋め2桁の日01〜31
H0埋め2桁の時(24時間制)00〜23
i0埋め2桁の分00〜59
s0埋め2桁の秒00〜59
N曜日の番号(ISO-8601)1が月曜、7が日曜
w曜日の番号0が日曜、6が土曜
D曜日の英語略称Mon, Tue, Wed
UUNIXタイムスタンプtime() と同じ値
サンプルコード
<?php
// 現在の日付をフォーマットします。
echo date("Y-m-d"); // 『2025-04-15』のように出力されます。
echo date("Y年m月d日"); // 『2025年04月15日』のように出力されます。

// 時刻を含めてフォーマットします。
echo date("Y-m-d H:i:s"); // 『2025-04-15 10:30:45』のように出力されます。

// 曜日を取得します。
$week = ["日", "月", "火", "水", "木", "金", "土"];
echo $week[date("w")]; // 現在の曜日が日本語で出力されます。

// time() で現在のタイムスタンプを取得します。
echo time(); // 『1744684245』のような整数が出力されます。

// 1時間後のタイムスタンプを計算します。
$one_hour_later = time() + 3600;
echo date("H:i:s", $one_hour_later); // 現在の1時間後の時刻が出力されます。

// mktime() で特定の日時のタイムスタンプを生成します。
$ts = mktime(0, 0, 0, 12, 31, 2025);
echo date("Y-m-d D", $ts); // 『2025-12-31 Wed』と出力されます。

// mktime() の繰り上げを利用して月末日を求めます。
$last_day = mktime(0, 0, 0, 4, 0, 2025); // 4月0日は3月末日として扱われます。
echo date("Y-m-d", $last_day); // 『2025-03-31』と出力されます。

// gmdate() でGMTの時刻を取得します。
echo gmdate("Y-m-d H:i:s"); // 日本時間より9時間前の時刻が出力されます。

// Cookie の有効期限を設定する実用例
$expire = time() + (60 * 60 * 24 * 30); // 30日後のタイムスタンプ
echo date("Y-m-d", $expire); // 30日後の日付が出力されます。
概要

『date()』はPHPで最もよく使われる日時関数で、フォーマット文字を組み合わせて任意の日付文字列を生成します。日本語のサイトでは『date("Y年m月d日")』のようにフォーマット文字以外の文字をそのまま含められる点が便利です。

『time()』が返すUNIXタイムスタンプは1970年1月1日0時0分0秒 UTCからの経過秒数です。タイムスタンプに秒数を加減算することで、未来や過去の日時を簡単に計算できます。タイムゾーンは php.inidate.timezone またはスクリプト内の date_default_timezone_set() で設定します。日本の場合は『Asia/Tokyo』を指定してください。

より柔軟な日時操作が必要な場合は『DateTime クラス』を、日付文字列のパースには『strtotime()』を使用してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。