DateTimeのphpマニュアルから引用した次の例を考えてみましょう
<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>
「D」は数日間ですが、そのフォーマットで「P」は何を表していますか?
DateTimeのphpマニュアルから引用した次の例を考えてみましょう
<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>
「D」は数日間ですが、そのフォーマットで「P」は何を表していますか?
回答:
もっと詳しく答えられると思います。まず、DateInterval
コンストラクターメソッド$interval_spec
は文字列という名前の1つのパラメーターを取ります。
DateInterval::__construct ( string $interval_spec )
このパラメーターの仕様は次のとおりです。
形式は、ピリオドの文字Pで始まります。各期間は整数値とそれに続く期間指定子で表されます。期間に時間要素が含まれている場合、仕様のその部分の前には文字Tが付きます。
引数で使用されるいくつかの期間指定子があります。
期間指定子を使用したいくつかの例を見てみましょう。
ドキュメントに記載されているように維持する必要がある順序があります:
単位タイプは、左側の最大スケール単位から右側の最小スケール単位まで入力する必要があります。したがって、数年前、数か月前、数日前、数分前などです。したがって、1年4日は、P4D1YではなくP1Y4Dとして表す必要があります。
仕様は、日時として表すこともできます。
ただし、この形式の値は、特定の期間のロールオーバーポイントを超えることはできません(たとえば、25時間は無効です)。
P
いますが、その参照は非常に控えめです。私はそれが期間を意味推測し、私が探していたphp.net
その言葉のために、私は明らかに、コンストラクタのページへのやったことがなかった..しかし、それは上で参照されていないdate_format
、DateTime::diff
、DateTime::format
、DateInterval
一般の、およびホストDate/Time
機能。知っておくべき他のプレフィックスがあるかどうかを知りたいと思っていましたが、スタック交換に来るまでそれを見つけることができた場合は気になります