Menu
CoddyTech

Modificando Objetos DateTime

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy. Lição 50 de 68.

Depois de ter um objeto DateTime, muitas vezes você precisa alterá-lo para representar um momento diferente no tempo. O método modify() permite adicionar ou subtrair tempo do seu objeto DateTime usando expressões em linguagem natural, tornando os cálculos de datas intuitivos e fáceis de ler.

O método modify() aceita os mesmos tipos de strings que funcionam com strtotime(), como '+1 day', '-2 weeks' ou 'next Friday'. Diferentemente de criar um novo objeto a cada vez, esse método modifica diretamente o objeto DateTime existente, o que é eficiente para operações sequenciais com datas.

<?php
$date = new DateTime();
echo $date->format('Y-m-d');  // Data de hoje

$date->modify('+1 week');
echo $date->format('Y-m-d');  // Daqui a uma semana

$date->modify('-3 days');
echo $date->format('Y-m-d');  // Daqui a 4 dias
?>

Essa abordagem oferece a você uma flexibilidade poderosa para cálculos de datas. Você pode encadear várias modificações ou usar expressões complexas como '+2 months -1 day' para realizar cálculos sofisticados com datas, mantendo seu código claro e fácil de manter.

challenge icon

Desafio

Fácil

Você receberá duas entradas: uma string de data no formato Y-m-d H:i:s e uma string de modificação. A primeira entrada é uma data e hora específicas (exemplo: 2024-03-15 14:30:25), e a segunda entrada é uma expressão de modificação, como +1 week, -3 days ou +2 months.

Leia as duas entradas, crie um objeto DateTime usando a string de data, use o método modify() para aplicar a expressão de modificação ao objeto DateTime e imprima a data modificada no formato Y-m-d H:i:s.

Formato da entrada:

  • Primeira linha: uma string de data no formato Y-m-d H:i:s (exemplo: 2024-03-15 14:30:25)
  • Segunda linha: uma string de modificação (exemplo: +1 week, -3 days ou +2 months)

Saída esperada: a data modificada formatada como Y-m-d H:i:s

Experimente você mesmo

<?php
// Leia a string da data
$dateString = trim(fgets(STDIN));

// Leia a string de modificação
$modificationString = trim(fgets(STDIN));

// TODO: Escreva seu código abaixo
// Crie um objeto DateTime, aplique a modificação e formate o resultado


// Exiba a data modificada
echo $modifiedDate;
?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de PHP online