Programming, tutorials, mechatronics, operating systems, and other tech stuff

Menghitung jumlah hari antara 2 tanggal di PHP

No comments
Sebuah coretan singkat tentang cara untuk menghitung jumlah hari antara 2 tanggal di PHP. Fungsi ini memang sepele, tapi tetap saya post disini karena siapa tahu ada yang membutuhkan.

Penerapannya bisa untuk menghitung tengat waktu/deadline, kadaluarsa, jangka waktu, dll.

<?php

function hitungHari($awal,$akhir){

$tglAwal = strtotime($awal);

$tglAkhir = strtotime($akhir);

$jeda = abs($tglAkhir - $tglAwal);

return floor($jeda/(60*60*24));

}

?>
untuk penggunaanya (dalam contoh ini menggunakan format penanggalan SQL):

echo hitungHari('2015-01-01','2015-12-01');

Penjelasannya


function hitungHari($awal,$akhir)

adalah deklarasi fungsi hitungHari yg menerima 2 parameter, yaitu variabel $awal dan $akhir. Dimana $awal adalah tanggal awal (dalam kasus ini menggunakan format string penanggalan SQL yaitu tahun-bulan-tanggal). Dan $akhir adalah tanggal akhir.

$tglAwal = strtotime($awal);
$tglAkhir = strtotime($akhir);

Dua baris diatas mengubah variabel $awal dan $akhir yg berisi string tanggal, kedalam bentuk time (jumlah detik sejak tahun 1 Januari 1970) yang kemudian disimpan ke variable $tglAwal dan $tglAkhir.

$jeda = abs($tglAkhir - $tglAwal);

Baris diatas adalah operasi pengurangan dari $tglAkhir dikurangi $tglAwal. Sehingga didapat hasil yaitu jarak waktu antara 2 variabel tadi dalam satuan detik. Fungsi abs() adalah untuk mendapatkan angka absolut (angka yg selalu positif) karena bisa saja hasil dari pengurangan tersebut adalah minus, jika $tglAwal lebih besar daripada $tglAkhir. Lalu kemudian disimpan kedalam variabel $jeda.

return floor($jeda/(60*60*24));
Fungsi floor() pada baris diatas adalah untuk membulatkan kebawah dari hasil perhitungan $jeda/(60*60*24). Maksud perhitungan disamping adalah membagi nilai variabel $jeda dengan (60*60*24) dimana 60 adalah jumlah detik dalam 1 menit, 60 adalah jumah menit dalam 1 jam, 24 adalah jumlah jam dalam 1 hari. Karena nilai dari $jeda adalah dalam satuan detik.

Jika anda ingin menyesuaikan fungsi tersebut untuk menghitung jumlah minggu, bulan, tahun, tinggal anda sesuaikan (60*60*24) menjadi (60*60*24*7) untuk minggu,  (60*60*24*30) untuk bulan.

Sekian tutorial PHP sederhana untuk menghitung jumlah hari antara 2 tanggal. Semoga bermanfaat.

No comments :

Post a Comment