Menu
Coddy logo textTech

Modificare gli oggetti DateTime

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 50 di 68.

Una volta che hai un oggetto DateTime, spesso devi modificarlo per rappresentare un momento diverso nel tempo. Il metodo modify() ti permette di aggiungere o sottrarre tempo al tuo oggetto DateTime usando espressioni in linguaggio naturale, rendendo i calcoli sulle date intuitivi e leggibili.

Il metodo modify() accetta gli stessi tipi di stringhe che funzionano con strtotime(), come '+1 day', '-2 weeks' o 'next Friday'. A differenza della creazione di un nuovo oggetto ogni volta, questo metodo modifica direttamente l'oggetto DateTime esistente, il che è efficiente per le operazioni sequenziali sulle date.

<?php
$date = new DateTime();
echo $date->format('Y-m-d');  // La data di oggi

$date->modify('+1 week');
echo $date->format('Y-m-d');  // Tra una settimana

$date->modify('-3 days');
echo $date->format('Y-m-d');  // Tra 4 giorni
?>

Questo approccio ti offre una grande flessibilità nei calcoli delle date. Puoi concatenare più modifiche o usare espressioni complesse come '+2 months -1 day' per eseguire calcoli sofisticati sulle date mantenendo il codice chiaro e manutenibile.

challenge icon

Sfida

Facile

Riceverai due input: una stringa di data nel formato Y-m-d H:i:s e una stringa di modifica. Il primo input è una data e un'ora specifiche (esempio: 2024-03-15 14:30:25) e il secondo input è un'espressione di modifica come +1 week, -3 days o +2 months.

Leggi entrambi gli input, crea un oggetto DateTime usando la stringa di data, usa il metodo modify() per applicare l'espressione di modifica all'oggetto DateTime e stampa la data modificata nel formato Y-m-d H:i:s.

Formato dell'input:

  • Prima riga: una stringa di data nel formato Y-m-d H:i:s (esempio: 2024-03-15 14:30:25)
  • Seconda riga: una stringa di modifica (esempio: +1 week, -3 days o +2 months)

Output previsto: la data modificata formattata come Y-m-d H:i:s

Provalo tu

<?php
// Leggi la stringa della data
$dateString = trim(fgets(STDIN));

// Leggi la stringa della modifica
$modificationString = trim(fgets(STDIN));

// TODO: Scrivi il tuo codice qui sotto
// Crea un oggetto DateTime, applica la modifica e formatta il risultato


// Mostra la data modificata
echo $modifiedDate;
?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online