PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

【PHP入門】date()関数の使い方を徹底解説!日付・時刻の書式指定子一覧と実行例

PHPの date() 関数は、ローカルの日付や時刻を任意の形式に整形(フォーマット)するための関数です。整数型のUnixタイムスタンプを引数として渡すと、その時刻をもとに整形された文字列が返されます。タイムスタンプを省略した場合は、現在の時刻が自動的に使用されます。

基本構文

date(format, timestamp)

パラメータ

  • timestamp − 整数型のUnixタイムスタンプ。省略した場合は、現在のローカル時刻がデフォルトで使用されます。

  • format − 結果の出力形式を指定する書式文字列。主な指定文字は以下のとおりです。

    日に関する書式指定子

    • d − 日(01〜31)。ゼロを先頭に付けた2桁表記

    • D − 曜日の略称(3文字。例:Mon、Tue)

    • j − 日(1〜31)。先頭にゼロを付けない表記

    • l(小文字のL)− 曜日の完全な名称(例:Monday、Sunday)

    • N − ISO-8601形式の曜日番号(月曜が1、日曜が7)

    • S − 英語の序数接尾辞(st、nd、rd、th の2文字。j と組み合わせて使用すると効果的)

    • w − 曜日の数値表現(日曜が0、土曜が6)

    • z − 年間の通算日数(0〜365)

    週・年に関する書式指定子

    • W − ISO-8601形式の年内週番号(週は月曜から開始)

    • F − 月の完全な名称(January〜December)

    • m − 月の数値表現(01〜12)。先頭にゼロを付けた2桁表記

    • M − 月の略称(3文字。例:Jan、Feb)

    • n − 月の数値表現(1〜12)。先頭にゼロを付けない表記

    • t − 指定した月の日数(28〜31)

    • L − うるう年かどうか(うるう年なら1、それ以外は0)

    • o − ISO-8601形式の年番号

    • Y − 年(4桁表記。例:2025)

    • y − 年(2桁表記。例:25)

    時刻に関する書式指定子

    • a − 午前/午後(小文字の am または pm)

    • A − 午前/午後(大文字の AM または PM)

    • B − Swatchインターネット時間(000〜999)

    • g − 12時間制の時(1〜12)。先頭にゼロを付けない表記

    • G − 24時間制の時(0〜23)。先頭にゼロを付けない表記

    • h − 12時間制の時(01〜12)。先頭にゼロを付けた2桁表記

    • H − 24時間制の時(00〜23)。先頭にゼロを付けた2桁表記

    • i − 分(00〜59)。先頭にゼロを付けた2桁表記

    • s − 秒(00〜59)。先頭にゼロを付けた2桁表記

    タイムゾーン・その他の書式指定子

    • e − タイムゾーン識別子(例:UTC、Asia/Tokyo)

    • I(大文字のi)− サマータイムかどうか(サマータイム中なら1、それ以外は0)

    • O − グリニッジ標準時(GMT)との差分(例:+0100)

    • T − PHPが動作するマシンのタイムゾーン設定(例:EST、JST)

    • Z − タイムゾーンのオフセット秒数。UTCより西側は負、東側は正(-43200〜43200)

    • c − ISO-8601形式の日付(例:2004-02-12T15:19:21+00:00)

    • r − RFC 2822形式の日付(例:Thu, 21 Dec 2000 16:01:07 +0200)

    • U − Unixエポック(1970年1月1日 00:00:00 GMT)からの経過秒数

戻り値

date() 関数は、指定された書式文字列に従って整形された文字列を返します。タイムスタンプが渡されなかった場合は、現在の時刻をもとにした結果となります。

使用例①:現在の曜日と詳細な日付を取得

まずは基本的な使い方を見てみましょう。

<?php
    date_default_timezone_set('UTC');
    echo date("l");
    echo "<br>";
    echo date('l dS \of F Y h:i:s A');
    echo "<br />";
?>

出力結果:

Thursday
Thursday 11th of October 2018 05:05:34 AM

この例では、l によって曜日のフルネームを取得し、複数の書式指定子を組み合わせることで「曜日+日+序数接尾辞+月+年+時刻」を一度に出力しています。

使用例②:定義済み日付フォーマット定数を使う

続いて、DATE_RFC822DATE_ATOM といった定義済みフォーマット定数を使用した例です。

<?php
    echo date(DATE_RFC822) . "<br>";
    echo date(DATE_ATOM, mktime(0,0,0,11,7,2017));
?>

出力結果:

Thu, 11 Oct 18 05:06:15 +0000
2017-11-07T00:00:00+00:00

このように、mktime() 関数で生成したタイムスタンプを第2引数に渡すことで、特定の日時を任意の国際規格のフォーマットへ変換することも可能です。

まとめ

date() 関数は、PHPで日付や時刻を扱う際の最も基本的かつ重要な関数です。書式指定子を組み合わせることで、柔軟に日付文字列を生成できます。また、タイムゾーンを扱う場合は date_default_timezone_set() を事前に呼び出しておくと、意図しない時刻ズレを防げますので覚えておきましょう。

  1. PHPのgmdate()関数とは?GMT/UTC基準で日時をフォーマットする方法を解説

    PHPのgmdate()関数とはgmdate()関数は、GMT/UTC(グリニッジ標準時)に基づいた日付・時刻を整形し、文字列として返すPHPの組み込み関数です。date()関数とよく似ていますが、date()がサーバーのローカルタイムゾーンを使用するのに対し、gmdate()は常にGMT/UTCを基準として処理する点が大きな違いです。国際的なサービスやログの記録など、タイムゾーンに依存しない統一された日時表示が必要な場面で活躍します。構文gmdate(format, timestamp)パラメータformat:出力する日付文字列の形式を指定します。使用可能な書式指定文字は以下の通りです。日に

  2. PHPのdate_format()関数の使い方を徹底解説!日付フォーマットの基本と書式指定子一覧

    PHPのdate_format()関数は、DateTimeオブジェクトを指定した書式に従って整形し、文字列として返す関数です。日付や時刻を自由な形式で表示したい場合に非常に便利な、日付処理の基本となる関数の一つです。構文date_format(obj, format)パラメータ(引数)obj − フォーマット対象となる DateTime オブジェクトを指定します。format − 出力結果の書式を指定します。主な書式指定子は以下のとおりです。日に関する指定子d − 日(01〜31)。先頭にゼロが付きます。D − 曜日の省略形(3文字。例:Mon、Tue)。j − 日(1〜31)。先頭にゼロが付