Função PHP date_create_immutable ()
Definição e Uso
O date_create_immutable () é um alias de DateTimeImmutable :: __ construct () . Esta função aceita uma string de data / hora e um fuso horário como parâmetros (opcional) e cria um objeto DateTimeImmutable .
Ao contrário do objeto DateTime, este objeto não permite modificações, ele cria um novo objeto em caso de modificações e o retorna. Por padrão, esta função cria um objeto da data / hora atual
Sintaxe
date_create_immutable([$date_time, $timezone]);
Parâmetros
Sr. Não | Parâmetro e Descrição |
---|---|
1 |
date_time (Optional) Esta é a string de data / hora (em formatos suportados) para a qual você precisa criar um objeto DateTime imutável. |
2 |
timezone (Optional) Isso representa o fuso horário do horário determinado. |
Valores Retornados
A função PHP date_create_immutable () retorna o objeto DateTimeImmutable criado.
Versão PHP
Esta função foi introduzida pela primeira vez no PHP versão 5.5.0 e funciona com todas as versões posteriores.
Exemplo
O exemplo a seguir demonstra o uso da função date_create_immutable () -
<?php
$date_string = "2019-08-15 9:25:45";
$immutable = date_create_immutable($date_string);
print_r($immutable);
?>
Isso produzirá o seguinte resultado -
DateTimeImmutable Object
(
[date] => 2019-08-15 09:25:45.000000
[timezone_type] => 3
[timezone] => UTC
)
Exemplo
A seguir está um exemplo de date_create_immutable () com o parâmetro de fuso horário -
<?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'));
?>
Isso produzirá o seguinte resultado -
DateTimeImmutable Object
(
[date] => 2019-08-15 09:25:45.000000
[timezone_type] => 3
[timezone] => Indian/Mahe
)
2019-08-15 09:25:45
Exemplo
No exemplo a seguir, criamos uma data imutável e objetos de data normais adicionaram intervalos a eles e exibimos os valores resultantes. Uma vez que o objeto DateTime imutável cria e retorna um novo objeto no caso de uma tentativa de alteração, você pode observar que ele varia antes e depois da alteração -
<?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");
?>
Isso produzirá o seguinte 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