Método createFromFormat da classe DateTime

O método estático createFromFormat da classe DateTime permite criar um objeto DateTime a partir de uma string que corresponde ao formato especificado. Aceita três parâmetros: o formato da data, uma string com a data e um objeto opcional DateTimeZone. Retorna um objeto DateTime ou false em caso de erro.

Sintaxe

phpDateTime::createFromFormat(
  string $format,
  string $datetime,
  DateTimeZone $timezone = null
): DateTime|false

Exemplo

Vamos criar uma data a partir de uma string no formato dia-mês-ano:

php<?php
  $date = DateTime::createFromFormat('d-m-Y', '15-07-2023');
  echo $date->format('Y-m-d');
?>

Resultado da execução do código:

php'2023-07-15'

Exemplo

Vamos criar uma data e hora a partir de uma string em um formato não padrão:

php<?php
  $date = DateTime::createFromFormat('Y/m/d H:i', '2023/07/15 14:30');
  echo $date->format('d.m.Y H:i:s');
?>

Resultado da execução do código:

php'15.07.2023 14:30:00'

Exemplo

Vamos criar uma data com especificação do fuso horário:

php<?php
  $timezone = new DateTimeZone('Europe/Moscow');
  $date = DateTime::createFromFormat('Y-m-d H:i:s', '2023-07-15 14:30:00', $timezone);
  echo $date->format('Y-m-d H:i:s e');
?>

Resultado da execução do código:

php'2023-07-15 14:30:00 Europe/Moscow'

Veja também

  • método format,
    que formata data e hora
  • função strtotime,
    que transforma uma descrição textual de data em timestamp