현재 위치: > 최신 기사 목록> date_create_immutable과 date_create 함수의 차이점은 무엇입니까? PHP에서 사용하는 방법은 무엇입니까?

date_create_immutable과 date_create 함수의 차이점은 무엇입니까? PHP에서 사용하는 방법은 무엇입니까?

gitbox 2025-06-29

1. date_create () 함수

date_create ()는 변수 dateTime 객체를 만드는 데 사용되는 함수입니다. 이 함수를 호출하면 현재 날짜와 시간을 나타내는 DateTime 객체를 만들거나 특정 날짜 문자열을 전달하여 특정 날짜를 만들 수 있습니다.

 <span><span><span class="hljs-meta">&lt;?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>-&gt;</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">?&gt;</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>-&gt;</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>-&gt;</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>

2. date_create_immutable () 함수

date_create_immutable ()은 date_create () 와 유사하며 날짜 개체를 만드는 데 사용되지만 불변의 dateTeMeimMutable 객체를 반환합니다. 즉, 일단 객체가 생성되면 더 이상 날짜와 시간을 수정할 수 없습니다.

 <span><span><span class="hljs-meta">&lt;?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>-&gt;</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">?&gt;</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>-&gt;</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>-&gt;</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>-&gt;</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>

3. 차이점 요약

특성 date_create () date_create_immutable ()
반환 유형 DateTime dateTimeImmutable
물체를 수정할 수 있습니다 수정할 수 있습니다 수정되지 않았습니다
시나리오를 사용하십시오 날짜를 수정 해야하는 시나리오에 적합합니다 원본 날짜를 수정하지 않는 시나리오에 적합합니다.

4. 사용 선택 방법

  1. date_create () 사용

    • 날짜를 수정 해야하는 경우 date_create ()를 사용하는 것이 더 적절합니다. Modify () , add () 등과 같은 메소드를 통한 날짜 및 시간 개체를 직접 수정할 수 있습니다.

    • 응용 프로그램이 날짜 시간 값을 자주 조정하고 조작 해야하는 경우 date_create ()는 더 많은 유연성을 제공합니다.

  2. date_create_immutable () 사용

    • 날짜 객체가 불변인지 확인하고 날짜를 처리 할 때 실수로 변경되지 않은지 확인하려면 date_create_immutable ()을 사용하는 것은 더 안전한 옵션입니다.

    • 다중 스레드 또는 동시 시나리오에서 불변의 물체를 사용하면 불변의 객체가 외부 수정의 영향을받지 않기 때문에 잠재적 인 동시성 문제를 피할 수 있습니다.

5. 요약

date_create ()date_create_immutable () 둘 다 날짜 개체를 생성하지만 이들 사이의 주요 차이점은 돌연변이입니다. date_create () 수정할 수있는 객체를 반환하고 date_create_immutable ()는 불변의 개체를 반환합니다. 선택할 기능은 응용 프로그램 요구 사항에 따라 다릅니다. 유연한 날짜 수정이 필요한 경우 date_create ()가 더 적합한 선택입니다. 객체가 예기치 않게 수정되지 않도록 해야하는 경우 date_create_immutable () 이 최선의 선택입니다.