$date1 = $date2 = new DateTime();
$date2->add(new DateInterval('P3Y'));
이제 $date1
과 $date2
에는 3 년 후에 같은 날짜가 포함됩니다. 두 개의 별도의 datetimes를 만들고 싶습니다. 하나는 문자열에서 파싱되고 하나는 3 년이 추가 된 것입니다. 현재 다음과 같이 해킹했습니다.DateTime 객체를 어떻게 깊게 복사합니까?
$date2 = new DateTime($date1->format(DateTime::ISO8601));
하지만 끔찍한 해킹처럼 보입니다. DateTime 객체를 완전 복사하는 "올바른"방법이 있습니까?
변경 ,하지만 지금은 DateTime이 내가 다시 호출 할 수없는 일부 불투명 한 API에서 반환된다고 가정합니다. 예를 들어, 고객이 다음에 주문할 수있는 DateTime을 반환하는 주문을 처리하는 함수가 있습니다. 복사본을 만드는 함수를 호출하면 원하지 않는 부작용이 발생합니다. –
실제로 테스트하지는 않았지만 php.net에서 PHP 5.3 이상에서만 사용 가능하다고 언급되었습니다. –
@hugo : 예, DateTime 클래스에는 PHP 5.3이 필요합니다. –