DateTime::modify
date_modify
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTime::modify -- date_modify — Altera o timestamp
Descrição
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().
Parâmetros
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.
Valor Retornado
Retorna o objeto DateTime modificado para encadeamento de métodos ou false
em caso de falha.
Erros/Exceções
Apenas para API orientada a objetos: Se uma string inválida de data/hora for passada, é disparada uma exceção DateMalformedStringException.
Registro de Alterações
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. |
Exemplos
Example #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
Example #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
Example #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
Veja Também
- strtotime() - Interpreta qualquer descrição textual de data/hora em inglês para timestamp Unix
- DateTimeImmutable::modify() - Cria um novo objeto com seu timestamp modificado
- DateTime::add() - Modifica um objeto DateTime, com adição de dias, meses, anos, horas, minutos e segundos.
- DateTime::sub() - Subtrai uma quantidade de dias, meses, anos, horas, minutos e segundos de um objeto DateTime
- DateTime::setDate() - Define a data
- DateTime::setISODate() - Define uma data ISO
- DateTime::setTime() - Define o horário
- DateTime::setTimestamp() - Define a data e hora baseada em um timestamp Unix