Aktueller Standort: Startseite> Neueste Artikel> Was ist der Unterschied zwischen DATE_CREATE_IMMAUTLE und DATE_CREATE -Funktionen? Wie kann ich es in PHP verwenden?

Was ist der Unterschied zwischen DATE_CREATE_IMMAUTLE und DATE_CREATE -Funktionen? Wie kann ich es in PHP verwenden?

gitbox 2025-06-29

1. Date_Create () Funktion

DATE_CREATE () ist eine Funktion, mit der ein variables DateTime -Objekt erstellt wird. Wenn Sie diese Funktion aufrufen, können Sie ein DateTime -Objekt erstellen, das das aktuelle Datum und die aktuelle Uhrzeit darstellt, oder ein bestimmtes Datum erstellen, indem Sie eine bestimmte Datumszeichenfolge übergeben.

 <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>

charakteristisch :

  • DATE_CREATE () gibt ein datetime -Objekt zurück, das veränderlich ist. Sie können seinen Wert ändern, indem Sie die Methode des Objekts aufrufen.

  • Objektmethoden wie modify () , add () , sub () usw. Ermöglichen Sie Datum und Uhrzeit.

 <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">// Ändern Sie bis zum nächsten Tag der aktuellen Zeit</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">// Ausgabe des geänderten Datums</span></span><span>
</span></span>

2. DATE_CREATE_IMMAUTLE () Funktion

DATE_CREATE_IMMAINGLE () ist ähnlich wie Datum_Create () und wird auch zum Erstellen von Datumsobjekten verwendet. Dies bedeutet, dass sein Datum und seine Uhrzeit, sobald das Objekt erstellt wurde, nicht mehr geändert werden kann.

 <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>

charakteristisch :

  • DATE_CREATE_IMMAUTLE () gibt ein datetimeMimmable -Objekt zurück, das unveränderlich ist und das Datum und die Uhrzeit nach der Erstellung nicht durch Methoden ändern kann.

  • Sie können den Wert des DateTimeMimmable -Objekts nicht direkt ändern, aber den Effekt "Ändern" durch Rückgabe eines neuen Objekts.

 <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">// Geben Sie ein neues Objekt zurück</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">// Ausgabe des geänderten Datums</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">// Das ursprüngliche Datum ausgeben,Nicht verändert</span></span><span>
</span></span>

3. Zusammenfassung der Unterschiede

Merkmal DATE_CREATE () DATE_CREATE_IMMAUTLE ())
Rückgabetyp Datetime DateTimeMimmable
Kann das Objekt geändert werden? Kann geändert werden Nicht modifiziert
Szenarien verwenden Geeignet für Szenarien, in denen Daten geändert werden müssen Geeignet für Szenarien, in denen Sie das Originaldatum nicht ändern möchten

4.. Wie man sich entscheidet, um zu verwenden

  1. Verwenden Sie DATE_CREATE () :

    • Wenn Sie das Datum ändern müssen, ist es angemessener, Datum_Create () zu verwenden. Es ermöglicht eine direkte Änderung von Datums- und Zeitobjekten, z. B. durch Methoden wie modify () , add () usw.

    • Wenn Ihre Bewerbung die Datumszeitwerte häufig anpassen und manipulieren muss, bietet DATE_CREATE () mehr Flexibilität.

  2. Verwenden Sie DATE_CREATE_IMMAUTLE () :

    • Wenn Sie sicherstellen möchten, dass Datumsobjekte unveränderlich sind, und sicherstellen, dass sie bei der Verarbeitung von Daten nicht versehentlich geändert werden, ist es eine sicherere Option, wenn date_create_immable () eine sicherere Option ist.

    • In Multithread- oder gleichzeitigen Szenarien kann die Verwendung unveränderlicher Objekte einige potenzielle Parallelitätsprobleme vermeiden, da unveränderliche Objekte nicht durch externe Modifikationen beeinflusst werden.

5. Zusammenfassung

Obwohl Date_Create () und DATE_CREATE_immable () beide Datumsobjekte erstellen, ist der Schlüsselunterschied zwischen ihnen die Veränderbarkeit. DATE_CREATE () gibt ein Objekt zurück, das geändert werden kann, und date_create_immable () gibt ein unveränderliches Objekt zurück. Welche Funktion zu wählen ist, hängt von Ihren Anwendungsanforderungen ab. Wenn eine flexible Datumsänderung erforderlich ist, ist DATE_CREATE () eine geeignetere Wahl. Wenn Sie sicherstellen müssen, dass das Objekt nicht unerwartet geändert wird, ist DATE_CREATE_IMMAUTAR () die beste Wahl.