Kok error ya? Mohon bantuannya Fatal error: Call to undefined method DateTime::diff() in C:\xampp\htdocs\tesnan\index.php on line 4
<?php $datetime1 = new DateTime('2009-10-11'); $datetime2 = new DateTime('2009-10-13'); $interval = $datetime1->diff($datetime2); echo $interval->format('%R%a days'); ?>@Nandar
647 Kontribusi 204 Poin
Dipost: 5 tahun yang lalu Update 2 tahun yang lalu
Jawaban Terpilih
@hilmanski
2497 Kontribusi 2067 Poin
Dipost: 5 tahun yang lalu Update 5 tahun yang lalu
Jawaban
Saya nggak pernah pakek method diff di DateTime sih, cuman kalau dilihat dari pesan errornya, mungkin fungsi diff nggak tersedia di objek DateTime.
@dalikewara
351 Kontribusi 260 Poin
Dipost: 5 tahun yang lalu
Biasanya pakai method apa?
@Nandar
647 Kontribusi 204 Poin
Dipost: 5 tahun yang lalu
@hilmanski
2497 Kontribusi 2067 Poin
Dipost: 5 tahun yang lalu
Cara mengatasinya gimana ya mas?
@Nandar
647 Kontribusi 204 Poin
Dipost: 5 tahun yang lalu
update versi php nya kalau mau make metode diff()
@hilmanski
2497 Kontribusi 2067 Poin
Dipost: 5 tahun yang lalu
ga bisa mas, soalnya ini punya perusahaan ada solusi lain mas?
@Nandar
647 Kontribusi 204 Poin
Dipost: 5 tahun yang lalu
@hilmanski
2497 Kontribusi 2067 Poin
Dipost: 5 tahun yang lalu Update 5 tahun yang lalu
hehe kan saya programmer baru mas, takut ada yg berubah karena sistem ini udah berjalan dari 2008. terimakasih mas, saya coba dulu.
@Nandar
647 Kontribusi 204 Poin
Dipost: 5 tahun yang lalu
Login untuk gabung berdiskusi
Tutorial ini akan menunjukan bagaimana cara menghitung selisih antara dua tanggal di php.
Disini kita akan menggunakan dua cara ,yang pertama menggunakan strtotime dan kedua menggunakan fungsi diff().
Cara Pertama.
<?php $tgl1 = strtotime("2020-01-01"); $tgl2 = strtotime("2020-01-20"); $jarak = $tgl2 - $tgl1; $hari = $jarak / 60 / 60 / 24; echo $hari; ?>
Cara pertama ini kita mengkonversi kedua tanggal menjadi detik dengan fungsi strtotime ,kemudian mengurangkan keduanya ,terakhir kita konversi detik.Untuk contoh diatas kita konversi menjadi hari.
Sekedar catatan strtotime hanya mencakup mulai dari tanggal 1 Januari 1970,jadi kurang cocok untuk menghitung umur jika dibawah tanggal tersebut.
Cara Kedua
<?php $tgl1 = new DateTime("2020-01-01"); $tgl2 = new DateTime("2020-01-20"); $jarak = $tgl2->diff($tgl1); echo $jarak->d; ?>
Untuk cara kedua kita menggunakan fungsi diff(),fungsi diff() memiliki beberapa keluaran seperti contoh diatas kita menggunakan ->d untuk hari.Untuk yang lain bisa dilihat dibawah:
- d untuk selisih hari.
- m untuk selisih bulan.
- y untuk selisih tahun.
- h untuk jam.
- i untuk menit.
- s untuk detik.
- invert bernilai 0 atau 1,0 jika tanggal yang dikurangkan lebih kecil dari tanggal pengurang begitu juga sebaliknya.
- days untuk menghitung total selisih hari.
Jika dilihat d dan days sama-sama menunjukan selisih hari,bedanya days mengeluarkan total jadi kalau kita menggurangkan 2020-02-2020 dengan 2020-01-01 maka akan keluar 50,kalau menggunakan d akan tetap mengeluarkan 19.
Sekian tutorial kali ini jika ada yang kurang dipahami,silahkan tanyakan dibawah.