DateInterval 형식에서 'P'는 무엇을 의미합니까?


82

DateTime에 대한 PHP 매뉴얼 에서 인용 한 다음 예제를 고려하십시오.

<?php
  $date = new DateTime('2000-01-20');
  $date->sub(new DateInterval('P10D'));
  echo $date->format('Y-m-d') . "\n";
?>

'D'는 날을 나타내는데, 그 형식에서 'P'는 무엇을 의미합니까?

답변:


122

에서 수동

간격 사양.

형식은 "마침표"를 나타내는 문자 P로 시작합니다. 각 기간 기간은 정수 값과 기간 지정자로 표시됩니다. 기간에 시간 요소가 포함 된 경우 사양의 해당 부분 앞에 문자 T가옵니다.


24

'P'는 기간을 나타냅니다. 여기 http://php.net/manual/en/dateinterval.construct.php 참조


10
그것은 미쳤습니다. 너무 많은 예제가 사용 P되지만 그 참조는 너무 절제되었습니다. 나는 기간을 의미 짐작 내가 검색 한 php.net그 단어, 나는 분명히 생성자 페이지로 없었어 .. 그러나 그것은에서 참조 아니에요 date_format, DateTime::diff, DateTime::format, DateInterval일반의, 그리고 호스트 Date/Time기능을합니다. 나는 교환을 쌓아왔다 때까지 다른 접두사에 대해 알고 내가 그것을 찾을 수 있다면 저주이 있다면 알고 싶어
Madivad

9

좀 더 자세하게 대답 할 수 있다고 생각합니다. 우선 DateInterval생성자 메서드 $interval_spec는 문자열 이라는 이름의 매개 변수를 취 합니다.

DateInterval::__construct ( string $interval_spec )

이 매개 변수에는 다음과 같은 사양이 있습니다.

형식은 마침표를 나타내는 문자 P로 시작합니다. 각 기간 기간은 정수 값과 기간 지정자로 표시됩니다. 기간에 시간 요소가 포함 된 경우 사양의 해당 부분 앞에 문자 T가옵니다.

인수에 사용되는 몇 가지 기간 지정자가 있습니다.

  • Y 에 대한
  • M 에 대한 개월
  • D 에 대한
  • W 에 대한 . 이들은 일로 변환되므로 D와 결합 할 수 없습니다.
  • H 를위한 시간
  • M 에 대한
  • S 에 대한

기간 지정자를 사용한 몇 가지 예를 살펴 보겠습니다.

  • 이틀은 P2D입니다.
  • 2 초는 PT2S입니다.
  • 6 년 5 분은 P6YT5M입니다.

문서에 설명 된대로 유지해야하는 순서가 있습니다.

단위 유형은 왼쪽의 가장 큰 눈금 단위에서 오른쪽의 가장 작은 눈금 단위까지 입력해야합니다. 따라서 몇 년 전, 몇 달 전, 몇 분 전 등. 따라서 1 년 4 일은 P4D1Y가 아니라 P1Y4D로 표시되어야합니다.

사양은 datetime으로 표시 될 수도 있습니다 .

  • 1 년, 2 개월, 4 일은 P0001-02-04T00 : 00 : 00입니다.

그러나이 형식의 값은 주어진 기간의 롤오버 포인트를 초과 할 수 없습니다 (예 : 25 시간은 유효하지 않음).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.