(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTime::modify -- date_modify — Altera o timestamp
Estilo orientado a objetos
Estilo procedural
Altera o timestamp de um objeto DateTime, incrementando-o ou decrementando-o, em um formato aceito pela função DateTimeImmutable::__construct().
object
Somente no estilo procedural: Um objeto DateTime retornado por date_create(). A função modifica este objeto.
modifier
Uma string de data/hora. Os formatos válidos são explicados em Formatos de Data e Hora.
Retorna o objeto DateTime modificado para encadeamento de métodos ou false
em caso de falha.
Apenas para API orientada a objetos: Se uma string inválida de data/hora for passada, é disparada uma exceção DateMalformedStringException.
Versão | Descrição |
---|---|
8.3.0 | Agora dispara a exceção DateMalformedStringException com DateTime::modify() se uma string inválida for passada, em vez de um aviso. date_modify() não foi modificada. |
Exemplo #1 Exemplo do método DateTime::modify()
Estilo orientado a objetos
<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
?>
Estilo procedural
<?php
$date = date_create('2006-12-12');
date_modify($date, '+1 day');
echo date_format($date, 'Y-m-d');
?>
Os exemplos acima produzirão:
2006-12-13
Exemplo #2 Cuidados na adição ou subtração de meses
<?php
$date = new DateTime('2000-12-31');
$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>
O exemplo acima produzirá:
2001-01-31 2001-03-03
Exemplo #3 Todos os formatos de data e horário são suportados
<?php
$date = new DateTime('2020-12-31');
$date->modify('July 1st, 2023');
echo $date->format('Y-m-d H:i') . "\n";
$date->modify('Monday next week');
echo $date->format('Y-m-d H:i') . "\n";
$date->modify('17:30');
echo $date->format('Y-m-d H:i') . "\n";
?>
O exemplo acima produzirá:
2023-07-01 00:00 2023-07-03 00:00 2023-07-03 17:30