PHP의 date_date_set() 함수는 지정된 DateTime 객체에 새로운 날짜를 설정하는 데 사용됩니다. 이 함수를 호출하면 해당 객체에는 새로 설정한 날짜가 반영되며, 기존 시간 정보는 그대로 유지됩니다.
구문
date_date_set(object, year, month, day)
매개변수
object − 날짜를 설정할 DateTime 객체입니다.
year − 설정할 연도입니다.
month − 설정할 월입니다.
day − 설정할 일(날짜)입니다.
반환값
date_date_set() 함수는 성공 시 NULL을 반환하고, 실패 시 FALSE를 반환합니다.
예제
다음은 date_date_set() 함수와 동일한 역할을 하는 setDate() 메서드를 함께 비교하는 예제입니다.
<?php
$dateSrc = '2017-11-25 11:25 GMT';
$dateTime = date_create($dateSrc);
# date_date_set() 함수로 새로운 날짜 설정
date_date_set($dateTime, 2000, 12, 12);
echo "새로 포맷된 날짜는 " . $dateTime->format("Y-m-d\TH:i:s\Z");
echo "<br />";
# setDate() 메서드 사용 예제
$dateTime = new DateTime($dateSrc);
$dateTime->setDate(1999, 10, 12);
echo "새로 포맷된 날짜는 " . $dateTime->format("Y-m-d\TH:i:s\Z");
?>출력 결과
새로 포맷된 날짜는 2000-12-12T11:25:00Z 새로 포맷된 날짜는 1999-10-12T11:25:00Z
위 예제에서 확인할 수 있듯이, 두 방식 모두 원본 DateTime 객체의 시간(11:25)은 유지되면서 날짜 부분만 새롭게 변경되는 것을 볼 수 있습니다. 절차적 방식인 date_date_set()과 객체지향 방식인 setDate() 중 상황에 맞게 선택하여 사용하면 됩니다.