Bagaimana cara mencari atau menghitung selisih antara dua tanggal di PHP menggunakan kelas DateTime
Ini adalah panduan sederhana tentang bagaimana mencari atau menghitung selisih antara dua tanggal di PHP. Pastikan untuk mencoba contoh di bawah jika Anda baru mengenal topik ini. Hal ini sering kita jumpai pada kasus-kasus pembuatan aplikasi berbasis web (PHP) seperti:
- Menghitung waktu keterlambatan pada aplikasi pencatatan presensi pegawai
- Menghitung umur karyawan dan masa kerja pada sistem kepegawaian
- Menghitung lama pengerjaan project pada sistem manajemen project
- Mencari atau menghitung waktu keterlambatan atau peminjaman pada sistem pustaka
- Mencari atau Menghitung durasi peminjaman pada sistem rental mobil/motor
- dan pada kasus-kasus pembuatan sistem/aplikasi lainnya
Mencari selisih tanggal di PHP menggunakan kelas DateTime
Untuk mencari atau menghitung jumlah selisih hari dari dua tanggal PHP kita akan menggunakan DateTime class dengan fungsi diff, cara ini sangat mudah karena lebih bersih dan menyediakan antarmuka OO (Object Oriented). Kelas ini tersedia pada PHP dengan versi 5.3+[$tanggal1 = new DateTime("2011-07-06"); $tanggal2 = new DateTime(); $perbedaan = $tanggal2->diff($tanggal1)->format("%a"); echo $perbedaan;]
Untuk mengubah selisih tanggal menjadi format yang dapat kita pahami yang terdiri dari tahun, bulan, hari, jam dan menit:
[$tanggal = '2005-09-01 09:02:23'; $tanggal = new DateTime($tanggal); $sekarang = new DateTime(); $perbedaan = $tanggal->diff($sekarang); //gabungkan echo $perbedaan->y.' selisih tahun.
'; echo $perbedaan->m.' selisih bulan.
'; echo $perbedaan->d.' selisih hari.
'; echo $perbedaan->h.' selisih jam.
'; echo $perbedaan->i.' selisih menit.
';]
Dengan menggunakan kelas DateTime anda bisa mencari atau menghitung selisih tahun, bulan, hari jam dan menit dari dua buah tanggal. Seperti yang Anda lihat, kelas DateTime cukup mudah setelah Anda mengetahui penggunaannya!
Mencari selisih tanggal di PHP menggunakan fungsi Strtotime
untuk mencari atau menghitung selisih tanggal dan waktu di PHP pada versi PHP 5.3.0 kebawah, kita dapat menggunakan fungsi strtotime (), walaupun terlihat jadul, fungsinya tetap efektif. Sebagai contoh:[$tanggal_lahir = strtotime('1989-01-18'); $sekarang = time(); // Waktu sekarang $diff = $sekarang - $tanggal_lahir; echo 'umur anda adalah ' . floor($diff / (60 * 60 * 24 * 365)) . ' Tahun'; // Umur anda dalam hitungan tahun echo 'umur anda adalah ' . floor($diff / (60 * 60 * 24)) . ' Hari'; // Umur anda dalam hitungan hari]
Pada contoh di atas, fungsi strtotime () menghasilkan format timestamp. Timestamp adalah jenis format waktu dalam bentuk hitungan detik terhitung sejak (1970-01-01 00:00:00), sehingga stempel waktu 1 berarti 1 detik sejak sekarang atau 1970-01-01 00: 00:01.
Karena hasilnya dalam hitungan detik, maka untuk menghitung selisih waktu, kita harus membaginya dengan hitungan detik, pada contoh di atas, untuk menghitung hari, kita menggunakan perkalian detik, menit dan jam (60 x 60 x 24).
Selain dari dua cara sebelumnya, kita akan membahas satu cara lagi. Metode ini memiliki beberapa kelebihan, yaitu bisa menghitung selisih jam, menit, detik lebih mudah, misalnya:
[$start = strtotime('2017-07-12 10:05:25'); $end = strtotime('2017-07-13 11:07:33'); $diff = $end - $start; $hours = floor($diff / (60 * 60)); $minutes = $diff - $hours * (60 * 60); echo 'Selisih Waktu: ' . $hours . ' Jam, ' . floor( $minutes / 60 ) . ' Menit';]
Jika menemukan kendala mari kita diskusikan.
waduh gan keren nih, jadi pengen belajar PHP eheh
BalasHapusAyo Belajar PHP gan :)
BalasHapusThank's you bg nanang
BalasHapusEh ada Harumin... sama-sama Harumin.. :)
BalasHapusMengenal Sublime Text, Salah Satu Editor Kode Terbaik ==> https://bit.ly/3jhy39f
BalasHapus