Función PHP date_create_immutable ()
Definición y uso
El date_create_immutable () es un alias de DateTimeImmutable :: __ construct () . Esta función acepta una cadena de fecha / hora y una zona horaria como parámetros (opcional) y crea un objeto DateTimeImmutable .
A diferencia del objeto DateTime, este objeto no permite ninguna modificación, crea un nuevo objeto en caso de cambios y lo devuelve. De forma predeterminada, esta función crea un objeto de la fecha / hora actual
Sintaxis
date_create_immutable([$date_time, $timezone]);
Parámetros
No Señor | Descripción de parámetros |
---|---|
1 | date_time (Optional) Esta es la cadena de fecha / hora (en los formatos compatibles) para la que necesita crear un objeto DateTime inmutable. |
2 | timezone (Optional) Esto representa la zona horaria del momento dado. |
Valores devueltos
La función PHP date_create_immutable () devuelve el objeto DateTimeImmutable creado.
Versión PHP
Esta función se introdujo por primera vez en PHP Versión 5.5.0 y funciona con todas las versiones posteriores.
Ejemplo
El siguiente ejemplo demuestra el uso de la función date_create_immutable () :
<?php
$date_string = "2019-08-15 9:25:45";
$immutable = date_create_immutable($date_string);
print_r($immutable);
?>
Esto producirá el siguiente resultado:
DateTimeImmutable Object
(
[date] => 2019-08-15 09:25:45.000000
[timezone_type] => 3
[timezone] => UTC
)
Ejemplo
A continuación se muestra un ejemplo de date_create_immutable () con el parámetro de zona horaria:
<?php
$date_string = "2019-08-15 9:25:45";
$tz = new DateTimeZone('Indian/Mahe');
$immutable = date_create_immutable($date_string, $tz);
print_r($immutable);
print( date_format($immutable,'Y-m-d H:i:s'));
?>
Esto producirá el siguiente resultado:
DateTimeImmutable Object
(
[date] => 2019-08-15 09:25:45.000000
[timezone_type] => 3
[timezone] => Indian/Mahe
)
2019-08-15 09:25:45
Ejemplo
En el siguiente ejemplo, hemos creado una fecha inmutable y los objetos de fecha normal les agregaron intervalos y mostraron los valores resultantes. Dado que el objeto DateTime inmutable crea y devuelve un nuevo objeto en caso de un intento de cambio, puede observar que varía antes y después del cambio:
<?php
print("Immutable Date: "."\n");
$date1 = date_create_immutable('1986-09-11');
$date2 = $date1->add(new DateInterval('P15DP12MP9YT24H'));
print("Original Object Value: ".$date1->format('Y-m-d')."\n");
print("After Change: ".$date2->format('Y-m-d')."\n");
print("Normal Date: "."\n");
$date3 = date_create('1986-09-11');
$date4 = $date3->add(new DateInterval('P15DP12MP9YT24H'));
print("Original Object Value: ".$date3->format('Y-m-d')."\n");
print("After Change: ".$date4->format('Y-m-d')."\n");
?>
Esto producirá el siguiente resultado:
Immutable Date:
Original Object Value: 1986-09-11
After Change: 1996-09-27
Normal Date:
Original Object Value: 1996-09-27
After Change: 1996-09-27