Mengubah object DateTime
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 50 dari 68.
Setelah memiliki objek DateTime, kamu sering perlu mengubahnya agar mewakili waktu yang berbeda. Metode modify() memungkinkanmu menambah atau mengurangi waktu dari objek DateTime menggunakan ekspresi bahasa sehari-hari, sehingga perhitungan tanggal menjadi intuitif dan mudah dibaca.
Metode modify() menerima jenis string yang sama seperti yang dapat digunakan dengan strtotime(), seperti '+1 day', '-2 weeks', atau 'next Friday'. Tidak seperti membuat object baru setiap kali, metode ini langsung mengubah object DateTime yang sudah ada, 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 luar biasa untuk perhitungan tanggal. Kamu bisa merangkai beberapa perubahan atau menggunakan ekspresi kompleks seperti '+2 months -1 day' untuk melakukan operasi aritmetika tanggal yang canggih sekaligus menjaga kodemu tetap jelas dan mudah dipelihara.
Tantangan
MudahKamu 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), sedangkan 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 dengan 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 weekatau-3 daysatau+2 months)
Output yang diharapkan: Tanggal yang telah dimodifikasi dengan format 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;
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana7Bekerja dengan Tanggal dan Waktu
Fungsi 'date()'Timestamp Unix dengan 'time()'Pengantar object DateTimeMemformat object DateTimeMengubah object DateTimeRangkuman: Perhitungan Tanggal2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkatLatihan sendiri: Compiler PHP online