227 of 410 menu

DateIntervalクラス

クラスDateIntervalは、PHPで時間間隔を操作することを可能にします。 これは、2つの日付間の差分を保存するため、または日付操作メソッドで間隔を指定するために使用されます。 間隔は特別なフォーマットで作成されます。

構文

DateInterval::__construct(string $duration)

間隔のフォーマット

フォーマットは文字P (period) と以下の要素で構成されます:

P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W

このフォーマットでは: Y - 年, M - 月, D - 日, T - 時間の区切り文字, H - 時間, M - 分, S - 秒, W - 週。

これらの文字の前に、対応する値を書く必要があります。 例えば、3Yは3年を意味し、 5Y2M5年と2ヶ月を表します。

作成後、オブジェクトDateInterval は以下のプロパティを含みます:

<?php $interval->y // 年 $interval->m // 月 $interval->d // 日 $interval->h // 時間 $interval->i // 分 $interval->s // 秒 $interval->f // マイクロ秒 $interval->invert // 間隔が負の場合1 $interval->days // 日数 (diff()で作成された場合) ?>

例で間隔の動作を見てみましょう:

1時間、45分、30秒の間隔を作成します:

<?php $interval = new DateInterval('PT1H45M30S'); var_dump($interval); ?>

コードの実行結果:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 1 'i' => 45 's' => 30 )

3週と2日の間隔を作成します:

<?php $interval = new DateInterval('P3W2D'); var_dump($interval); ?>

コードの実行結果:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 23 'h' => 0 'i' => 0 's' => 0 )

5ヶ月、10日、6時間の間隔を作成します:

<?php $interval = new DateInterval('P5M10DT6H'); var_dump($interval); ?>

コードの実行結果:

DateInterval Object ( 'y' => 0 'm' => 5 'd' => 10 'h' => 6 'i' => 0 's' => 0 )

2年と15分の間隔を作成します:

<?php $interval = new DateInterval('P2YT15M'); var_dump($interval); ?>

コードの実行結果:

DateInterval Object ( 'y' => 2 'm' => 0 'd' => 0 'h' => 0 'i' => 15 's' => 0 )

1日、12時間、30秒の間隔を作成します:

<?php $interval = new DateInterval('P1DT12H30S'); var_dump($interval); ?>

コードの実行結果:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 1 'h' => 12 'i' => 0 's' => 30 )

1年と3ヶ月の負の間隔 (過去への間隔) を作成します:

<?php $interval = new DateInterval('P1Y3M'); $interval->invert = 1; var_dump($interval); ?>

コードの実行結果:

DateInterval Object ( 'y' => 1 'm' => 3 'd' => 0 'h' => 0 'i' => 0 's' => 0 'invert' => 1 )

2時間、30分の負の間隔 (過去への間隔) を作成します:

<?php $interval = new DateInterval('PT2H30M'); $interval->invert = 1; var_dump($interval); ?>

コードの実行結果:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 2 'i' => 30 's' => 0 'invert' => 1 )

現在の日付に間隔を加算します:

<?php $date = new DateTime('2023-01-01'); $interval = new DateInterval('P10D'); $date->add($interval); echo $date->format('Y-m-d'); ?>

コードの実行結果:

'2023-01-11'

2つの日付間の差分を計算します:

<?php $date1 = new DateTime('2023-01-01'); $date2 = new DateTime('2023-02-15'); $interval = $date1->diff($date2); echo $interval->format('%m months %d days'); ?>

コードの実行結果:

'1 months 14 days'

関連項目

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否