date_create ()는 변수 dateTime 객체를 만드는 데 사용되는 함수입니다. 이 함수를 호출하면 현재 날짜와 시간을 나타내는 DateTime 객체를 만들거나 특정 날짜 문자열을 전달하여 특정 날짜를 만들 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$datetime</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date_create</span></span><span>(</span><span><span class="hljs-string">'2025-06-21 12:00:00'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$datetime</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
특성 :
date_create ()는 datetime 객체를 반환합니다. 객체의 방법을 호출하여 그 값을 수정할 수 있습니다.
modify () , add () , sub () 등과 같은 객체 메소드를 사용하면 날짜와 시간을 수정할 수 있습니다.
<span><span><span class="hljs-variable">$datetime</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date_create</span></span><span>(</span><span><span class="hljs-string">'2025-06-21 12:00:00'</span></span><span>);
</span><span><span class="hljs-variable">$datetime</span></span><span>-></span><span><span class="hljs-title function_ invoke__">modify</span></span><span>(</span><span><span class="hljs-string">'+1 day'</span></span><span>); </span><span><span class="hljs-comment">// 현재 시간의 다음 날로 수정하십시오</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$datetime</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>); </span><span><span class="hljs-comment">// 수정 된 날짜를 출력하십시오</span></span><span>
</span></span>
date_create_immutable ()은 date_create () 와 유사하며 날짜 개체를 만드는 데 사용되지만 불변의 dateTeMeimMutable 객체를 반환합니다. 즉, 일단 객체가 생성되면 더 이상 날짜와 시간을 수정할 수 없습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$datetimeImmutable</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date_create_immutable</span></span><span>(</span><span><span class="hljs-string">'2025-06-21 12:00:00'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$datetimeImmutable</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
특성 :
date_create_immutable () 는 datetimeimmutable 객체를 반환합니다.이 객체는 불변이며 생성 후 메소드를 통해 날짜와 시간을 수정할 수 없습니다.
dateTimeImmutable 객체의 값을 직접 수정할 수는 없지만 새 개체를 반환하여 "수정"효과를 달성 할 수 있습니다.
<span><span><span class="hljs-variable">$datetimeImmutable</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date_create_immutable</span></span><span>(</span><span><span class="hljs-string">'2025-06-21 12:00:00'</span></span><span>);
</span><span><span class="hljs-variable">$newDatetime</span></span><span> = </span><span><span class="hljs-variable">$datetimeImmutable</span></span><span>-></span><span><span class="hljs-title function_ invoke__">modify</span></span><span>(</span><span><span class="hljs-string">'+1 day'</span></span><span>); </span><span><span class="hljs-comment">// 새 개체를 반환하십시오</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$newDatetime</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>); </span><span><span class="hljs-comment">// 수정 된 날짜를 출력하십시오</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$datetimeImmutable</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>); </span><span><span class="hljs-comment">// 원래 날짜를 출력하십시오,변경되지 않았습니다</span></span><span>
</span></span>
특성 | date_create () | date_create_immutable () |
---|---|---|
반환 유형 | DateTime | dateTimeImmutable |
물체를 수정할 수 있습니다 | 수정할 수 있습니다 | 수정되지 않았습니다 |
시나리오를 사용하십시오 | 날짜를 수정 해야하는 시나리오에 적합합니다 | 원본 날짜를 수정하지 않는 시나리오에 적합합니다. |
날짜를 수정 해야하는 경우 date_create ()를 사용하는 것이 더 적절합니다. Modify () , add () 등과 같은 메소드를 통한 날짜 및 시간 개체를 직접 수정할 수 있습니다.
응용 프로그램이 날짜 시간 값을 자주 조정하고 조작 해야하는 경우 date_create ()는 더 많은 유연성을 제공합니다.
date_create_immutable () 사용
날짜 객체가 불변인지 확인하고 날짜를 처리 할 때 실수로 변경되지 않은지 확인하려면 date_create_immutable ()을 사용하는 것은 더 안전한 옵션입니다.
다중 스레드 또는 동시 시나리오에서 불변의 물체를 사용하면 불변의 객체가 외부 수정의 영향을받지 않기 때문에 잠재적 인 동시성 문제를 피할 수 있습니다.
date_create () 및 date_create_immutable () 둘 다 날짜 개체를 생성하지만 이들 사이의 주요 차이점은 돌연변이입니다. date_create () 수정할 수있는 객체를 반환하고 date_create_immutable ()는 불변의 개체를 반환합니다. 선택할 기능은 응용 프로그램 요구 사항에 따라 다릅니다. 유연한 날짜 수정이 필요한 경우 date_create ()가 더 적합한 선택입니다. 객체가 예기치 않게 수정되지 않도록 해야하는 경우 date_create_immutable () 이 최선의 선택입니다.