DateTimeImmutable::__construct date_create_immutable Retorna um novo objeto DateTimeImmutable &reftitle.description; &style.oop; public DateTimeImmutable::__construct stringdatetime"now" DateTimeZonenulltimezone&null; &style.procedural; DateTimeImmutablefalsedate_create_immutable stringdatetime"now" DateTimeZonenulltimezone&null; Retorna um novo objeto DateTimeImmutable. &reftitle.parameters; datetime &date.formats.parameter; Utilize "now" para obter o horário atual quando usar o parâmetro$timezone. timezone Um objeto DateTimeZone representando o fuso horário do parâmetro $datetime. Se $timezone for &null; ou omitido, o fuso horário atual será utilizado. O parâmetro $timezone e o fuso horário atual são ignorados quando o parâmetro $datetime for um timestamp UNIX (ex.: @946684800) ou especificar um fuso horário (ex.: 2010-01-28T15:00:00+02:00 ou 2010-07-05T06:00:00Z). &reftitle.returnvalues; Retorna uma nova instância de DateTimeImmutable. &reftitle.errors; Se um string inválido de data/horário for passado, uma exceção DateMalformedStringException é disparada. Antes do PHP 8.3, era Exception. &reftitle.changelog; &Version; &Description; 8.3.0 Agora dispara DateMalformedStringException se uma string inválida for passada, em vez de Exception. 7.1.0 De agora em diante os microssegundos são preenchidos com o valor real. Não mais com '00000'. &reftitle.examples; Exemplo da função <function>DateTimeImmutable::__construct</function> &style.oop; getMessage(); exit(1); } echo $date->format('Y-m-d'); ]]> &example.outputs; &style.procedural; &example.outputs; Complexidades de <function>DateTimeImmutable::__construct</function> format('Y-m-d H:i:sP') . "\n"; // Data/horário especificados no fuso horário informado. $date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru')); echo $date->format('Y-m-d H:i:sP') . "\n"; // Data/horário atual no fuso horário padrão do PHP. $date = new DateTimeImmutable(); echo $date->format('Y-m-d H:i:sP') . "\n"; // Data/horário atual no fuso horário informado. $date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru')); echo $date->format('Y-m-d H:i:sP') . "\n"; // Usando um timestamp UNIX. Note que o resultado é no fuso horário UTC. $date = new DateTimeImmutable('@946684800'); echo $date->format('Y-m-d H:i:sP') . "\n"; // Valores não existentes são transferidos. $date = new DateTimeImmutable('2000-02-30'); echo $date->format('Y-m-d H:i:sP') . "\n"; ]]> &example.outputs.similar; Datas transferidas podem ser detectadas através da verificação de avisos usando DateTimeImmutable::getLastErrors. Mudando o fuso horário associado setTimezone($timeZone); echo $time->format('Y/m/d H:i:s e'), "\n"; ]]> &example.outputs.similar; Usando uma string relativo de data/horário format('Y/m/d H:i:s'), "\n"; ]]> &example.outputs.similar;