227 of 410 menu

DateInterval 클래스

DateInterval 클래스를 사용하면 PHP에서 시간 간격을 작업할 수 있습니다. 이 클래스는 두 날짜 사이의 차이를 저장하거나 날짜 작업 메서드에서 간격을 지정하는 데 사용됩니다. 간격은 특별한 형식으로 생성됩니다.

구문

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 )

예제

13개월의 음수 간격(역방향 간격)을 생성합니다:

<?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'

예제

두 날짜 사이의 차이를 계산합니다:

<?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'

함께 보기

  • 클래스 DateTime,
    날짜와 시간을 나타냅니다.
  • 클래스 DateTimeZone,
    시간대를 나타냅니다.
한국어
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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부