Php/docs/dateinterval.format

提供:Dev Guides
< Php
移動先:案内検索

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::format間隔をフォーマットする


説明

public DateInterval::format ( string $format ) : string

間隔をフォーマットします。


パラメータ

format
{| |+ 次の文字を、 format パラメータ文字列に使用することができます。 フォーマット文字は、パーセント記号 (%) で始めなければなりません。 ! format 文字 ! 説明 ! 値の例 |- | % | リテラルとしての % | % |- | Y | 年、数値、先頭に 0 を含む 2 桁 | 01, 03 |- | y | 年、数値 | 1, 3 |- | M | 月、数値、先頭に 0 を含む 2 桁 | 01, 03, 12 |- | m | 月、数値 | 1, 3, 12 |- | D | 日、数値、先頭に 0 を含む 2 桁 | 01, 03, 31 |- | d | 日、数値 | 1, 3, 31 |- | a | DateTime::diff() の結果に使った場合は総日数、それ以外の場合は (unknown) | 4, 18, 8123 |- | H | 時間、数値、先頭に 0 を含む 2 桁 | 01, 03, 23 |- | h | 時間、数値 | 1, 3, 23 |- | I | 分、数値、先頭に 0 を含む 2 桁 | 01, 03, 59 |- | i | 分、数値 | 1, 3, 59 |- | S | 秒、数値、先頭に 0 を含む 2 桁 | 01, 03, 57 |- | s | 秒、数値 | 1, 3, 57 |- | F | マイクロ秒、少なくとも6桁。足りない分は先頭が0埋めされます。 | 007701, 052738, 428291 |- | f | マイクロ秒、数値 | 7701, 52738, 428291 |- | R | 負の値の場合は "-"、正の値の場合は "+" | -, + |- | r | 負の値の場合は "-"、正の値の場合は空文字 | -, |}


返り値

フォーマットされた間隔を返します。


注意

注意:

DateInterval::format() メソッドは、 時刻文字列や日付セグメントでの繰り越しを再計算しません。 これは意図的な仕様です。なぜなら "32 days" のようにオーバーフローした値は "1 month and 4 days" から "1 month and 1 day" までのどれとでも解釈可能だからです。

変更履歴

バージョン 説明
7.1.0 フォーマット文字 Ff が追加されました。


例1 DateInterval の例

<?php$interval = new DateInterval('P2Y4DT6H8M');echo $interval->format('%d days');?>

上の例の出力は以下となります。


4 days

例2 DateInterval での繰り越しの例

<?php$interval = new DateInterval('P32D');echo $interval->format('%d days');?>

上の例の出力は以下となります。


32 days

例3 DateInterval および DateTime::diff() での修飾子 %a および %d

<?php$january = new DateTime('2010-01-01');$february = new DateTime('2010-02-01');$interval = $february->diff($january);// %a は総日数を出力しますecho $interval->format('%a total days')."\n";// 一方 %d は、月数に含まれない日数のみを出力しますecho $interval->format('%m month, %d days');?>

上の例の出力は以下となります。


31 total days
1 month, 0 days

参考