関数・クラス解説

date

version:PHP 4, PHP 5, PHP 7 (公式)

ローカルの日付/時刻を書式化する

公式リファレンス

書式

date ( string $format [, int $timestamp = time() ] ) : string

説明

指定された引数 timestamp を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返します。 タイムスタンプが与えられない場合は、現在の時刻が使われます。 つまり timestamp はオプションであり そのデフォルト値は time() の値です。

パラメータ

format
DateTimeInterface::format() が受け入れるフォーマット。
timestamp
オプションのパラメータ timestamp は、int 型の Unix タイムスタンプです。timestamp が指定されなかった場合のデフォルト値は、現在の時刻です。言い換えると、デフォルトはtime() の返り値となります。

返値

日付を表す文字列を返します。 timestamp に数字以外が使用された場合は FALSE が返され、E_WARNING レベルのエラーが発生します。

エラー

すべての日付/時刻関数は、有効なタイムゾーンが設定されていない場合に E_NOTICEを発生させます。また、システム設定のタイムゾーンあるいは環境変数TZ を使用した場合には E_STRICTあるいは E_WARNING を発生させます。date_default_timezone_set() も参照ください。

注意

注意: 日付の文字列表現からタイムスタンプを生成するには、 strtotime() が使用できるでしょう。 さらに、いくつかのデータベースは(MySQL の » UNIX_TIMESTAMP 関数の ような)日付フォーマットからタイムスタンプへの変換関数を有しています。
ヒント PHP 5.1 以降、$_SERVER['REQUEST_TIME'] によってリクエスト開始時のタイムスタンプが取得できるようになりました。

サンプル

例1 date() の例

// 使用するデフォルトのタイムゾーンを指定します。PHP 5.1 以降で使用可能です。 date_default_timezone_set('UTC'); // 結果は、たとえば Monday のようになります。 echo date("l"); // 結果は、たとえば Monday 8th of August 2005 03:12:46 PM のようになります。 echo date('l jS \of F Y h:i:s A'); // 結果は July 1, 2000 is on a Saturday となります。 echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)); /* 書式指定パラメータに、定数を使用します。 */ // 結果は、たとえば Wed, 25 Sep 2013 15:28:57 -0700 のようになります。 echo date(DATE_RFC2822); // 結果は、たとえば 2000-07-01T00:00:00+00:00 のようになります。 echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));

前にバックスラッシュを付けてエスケープすることにより、 フォーマット文字列として認識される文字が展開されることを防止することができます。 バックスラッシュ付きの文字は既に特別なシーケンスであり、 バックスラッシュもエスケープすることが必要となる可能性があります。

例2 date() の文字をエスケープする

// Wednesday the 15th のように出力 echo date('l \t\h\e jS');

date() と mktime() の両方を用いて、未来または過去の日付を知ることができます。

例3 date() と mktime() の例

$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y")); $lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y")); $nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);

注意:

サマータイムがあるため、日付や月の秒数を単純にタイムスタンプに 可減算するよりもより信頼性があります。

date() フォーマットのいくつかの例を示します。 現在の実装で特別な意味がある文字や今後の PHP のバージョンで意味が 割り付けられるであろう文字については、望ましくない結果を避けるために エスケープする必要があることに注意してください。エスケープを する際には、改行文字 \n のような文字を回避するために シングルクォートを使用してください。

例4 date() のフォーマット指定

// 今日は March 10th, 2001, 5:16:18 pm であり、 // またタイムゾーンは Mountain Standard Time (MST) であるものとします $today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm $today = date("m.d.y");                         // 03.10.01 $today = date("j, n, Y");                       // 10, 3, 2001 $today = date("Ymd");                           // 20010310 $today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day. $today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month $today = date("H:i:s");                         // 17:16:18 $today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (MySQL の DATETIME フォーマット)

他の言語で日付をフォーマットするためには、date() のかわりに setlocale() および strftime() 関数を使用する必要があります。

参考

  • gmdate() - GMT/UTC の日付/時刻を書式化する
  • idate() - ローカルな時刻/日付を整数として整形する
  • getdate() - 日付/時刻情報を取得する
  • getlastmod() - 最終更新時刻を取得する
  • mktime() - 日付を Unix のタイムスタンプとして取得する
  • strftime() - ロケールの設定に基づいてローカルな日付・時間をフォーマットする
  • time() - 現在の Unix タイムスタンプを返す
  • DateTimeImmutable::__construct() - 新しい DateTimeImmutable オブジェクトを返す
  • 定義済みの定数
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール