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.
Sfida
FacileRiceverai 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 dayso+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;
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Funzioni avanzate
Funzioni anonimeClosure e 'use'Funzioni frecciaFunzioni callbackUso di 'call_user_func'Funzioni variabiliPassaggio per riferimentoFunzioni ricorsiveRiepilogo: carrellata di funzioni4Array multidimensionali
Creare un array 2DAccedere agli elementi di un array 2DModificare gli elementi di un array 2DIterare con cicli annidatiArray associativi 2DRipasso: esercizio con una griglia semplice7Lavorare con date e orari
La funzione 'date()'Timestamp Unix con 'time()'Introduzione all'oggetto DateTimeFormattare gli oggetti DateTimeModificare gli oggetti DateTimeRiepilogo: calcoli con le date2Manipolazioni avanzate degli array
Aggiungere con 'array_push'Rimuovere con 'array_pop'Aggiungere con 'array_unshift'Rimuovere con 'array_shift'Unire array indicizzatiUnire array associativiEstrarre con 'array_slice'Valori con 'in_array'Chiavi con 'array_search'Riepilogo: esercizio playlist3Ordinare gli array
Ordina gli array indicizzati in ordine crescenteOrdina gli array indicizzati in ordine decrescenteOrdina gli array associativi per valoreOrdina gli array associativi per chiaveOrdinamento naturaleOrdinamento personalizzato con 'usort'Ripasso: ordinamento della classificaEsercitati da solo: Compilatore PHP online