DateTime에 대한 PHP 매뉴얼 에서 인용 한 다음 예제를 고려하십시오.
<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>
‘D’는 날을 나타내는데, 그 형식에서 ‘P’는 무엇을 의미합니까?
답변
에서 수동
간격 사양.
형식은 “마침표”를 나타내는 문자 P로 시작합니다. 각 기간 기간은 정수 값과 기간 지정자로 표시됩니다. 기간에 시간 요소가 포함 된 경우 사양의 해당 부분 앞에 문자 T가옵니다.
답변
‘P’는 기간을 나타냅니다. 여기 http://php.net/manual/en/dateinterval.construct.php 참조
답변
좀 더 자세하게 대답 할 수 있다고 생각합니다. 우선 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 시간은 유효하지 않음).