Método setDate da classe DateTime

O método setDate altera a data no objeto DateTime. Ele aceita três parâmetros: ano (número inteiro), mês (número inteiro de 1 a 12) e dia (número inteiro de 1 a 31). Retorna o objeto DateTime modificado.

Sintaxe

phppublic DateTime::setDate(int $year, int $month, int $day): DateTime

Exemplo

Vamos definir uma nova data: 15 de março de 2023:

php<?php
  $date = new DateTime();
  $date->setDate(2023, 3, 15);
  echo $date->format('Y-m-d');
?>

Resultado da execução do código:

php'2023-03-15'

Exemplo

Correção automática de datas inválidas (32 de janeiro é convertido para 1 de fevereiro):

php<?php
  $date = new DateTime();
  $date->setDate(2023, 1, 32);
  echo $date->format('Y-m-d');
?>

Resultado da execução do código:

php'2023-02-01'

Exemplo

Definindo data com valores negativos (transição para o ano anterior):

php<?php
  $date = new DateTime();
  $date->setDate(2023, -1, 15);
  echo $date->format('Y-m-d');
?>

Resultado da execução do código:

php'2022-11-15'

Veja também

  • a função checkdate,
    que verifica a validade de uma data
  • a função date,
    que formata uma data fornecida
  • a função modify,
    que altera a data por uma string de formato relativo