Menu
CoddyTech

Mengubah object DateTime

Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 50 dari 68.

Setelah memiliki object DateTime, kamu sering perlu mengubahnya agar mewakili momen yang berbeda. Method modify() memungkinkan kamu menambahkan atau mengurangi waktu dari object DateTime menggunakan ekspresi dalam bahasa sehari-hari, sehingga perhitungan tanggal menjadi intuitif dan mudah dibaca.

method modify() menerima jenis string yang sama dengan yang berfungsi bersama strtotime(), seperti '+1 day', '-2 weeks', atau 'next Friday'. Tidak seperti membuat object baru setiap kali, method ini mengubah object DateTime yang ada secara langsung, sehingga efisien untuk operasi tanggal berurutan.

<?php
$date = new DateTime();
echo $date->format('Y-m-d');  // Tanggal hari ini

$date->modify('+1 week');
echo $date->format('Y-m-d');  // Satu minggu dari hari ini

$date->modify('-3 days');
echo $date->format('Y-m-d');  // 4 hari dari hari ini
?>

Pendekatan ini memberimu fleksibilitas yang besar untuk perhitungan tanggal. Kamu dapat merangkai beberapa perubahan atau menggunakan ekspresi kompleks seperti '+2 months -1 day' untuk melakukan aritmetika tanggal yang canggih sambil menjaga kodemu tetap jelas dan mudah dipelihara.

challenge icon

Tantangan

Mudah

Kamu akan menerima dua input: string tanggal dengan format Y-m-d H:i:s dan string modifikasi. Input pertama adalah tanggal dan waktu tertentu (contoh: 2024-03-15 14:30:25), dan input kedua adalah ekspresi modifikasi seperti +1 week, -3 days, atau +2 months.

Baca kedua input, buat object DateTime menggunakan string tanggal, gunakan method modify() untuk menerapkan ekspresi modifikasi pada object DateTime, lalu cetak tanggal yang telah dimodifikasi dalam format Y-m-d H:i:s.

Format input:

  • Baris pertama: String tanggal dengan format Y-m-d H:i:s (contoh: 2024-03-15 14:30:25)
  • Baris kedua: String modifikasi (contoh: +1 week atau -3 days atau +2 months)

Output yang diharapkan: Tanggal yang telah dimodifikasi dan diformat sebagai Y-m-d H:i:s

Coba sendiri

<?php
// Baca string tanggal
$dateString = trim(fgets(STDIN));

// Baca string perubahan
$modificationString = trim(fgets(STDIN));

// TODO: Tulis kodemu di bawah ini
// Buat object DateTime, terapkan perubahan, lalu format hasilnya


// Tampilkan tanggal yang telah diubah
echo $modifiedDate;
?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler PHP online