Mencari Durasi Antar Dua Tanggal dengan PHP

Beberapa saat yang lalu penulis ditanya mengenai cara untuk mencari durasi waktu antar dua buah tanggal dengan menggunakan PHP. Sebenarnya tulisan mengenai sudah ada di situs php.net. Melalui tulisan kali ini penulis hanya ingin mengutip source code dari php.net untuk mencari durasi antar dua buah tanggal seperti layaknya fungsi datediff pada Visual Basic 6.0.

Fungsi ini dibuat oleh seseorang yang mempunyai email andreencinas[at]yahoo[dot]com[dot]br dan di posting pada tanggal 18 Januari 2005 di situs php.net.

function dateDiff($interval,$dateTimeBegin,$dateTimeEnd) {
//Parse about any English textual datetime
//$dateTimeBegin, $dateTimeEnd

$dateTimeBegin=strtotime($dateTimeBegin);
if($dateTimeBegin === -1) {
return("..begin date Invalid");
}

$dateTimeEnd=strtotime($dateTimeEnd);
if($dateTimeEnd === -1) {
return("..end date Invalid");
}

$dif=$dateTimeEnd - $dateTimeBegin;

switch($interval) {
case "s"://seconds
return($dif);

case "n"://minutes
return(floor($dif/60)); //60s=1m

case "h"://hours
return(floor($dif/3600)); //3600s=1h

case "d"://days
return(floor($dif/86400)); //86400s=1d

case "ww"://Week
return(floor($dif/604800)); //604800s=1week=1semana

case "m": //similar result "m" dateDiff Microsoft
$monthBegin=(date("Y",$dateTimeBegin)*12)+
date("n",$dateTimeBegin);
$monthEnd=(date("Y",$dateTimeEnd)*12)+
date("n",$dateTimeEnd);
$monthDiff=$monthEnd-$monthBegin;
return($monthDiff);

case "yyyy": //similar result "yyyy" dateDiff Microsoft
return(date("Y",$dateTimeEnd) - date("Y",$dateTimeBegin));

default:
return(floor($dif/86400)); //86400s=1d
}
}

Fungsi dateDiff di atas menggunakan 3 (tiga) buah parameter yaitu $interval, $dateTimeBegin dan $dateTimeEnd. Parameter $interval digunakan untuk menentukan jenis satuan durasi antar waktu yang diinginkan. Tersedia beberapa pilihan jenis durasi disana, mulai dari detik, menit, jam, hari, minggu, bulan atau bahkan tahun. Parameter $dateTimeBegin dan $dateTimeEnd penulis rasa sudah bisa dimengerti artinya, yaitu digunakan untuk memasukkan tanggal-tanggal yang akan diukur durasinya.

Cara penggunaan fungsi dateDiff di atas sangat mudah sekali. Cukup paste code di atas pada script PHP Anda dan kemudian panggil fungsi dateDiff dengan memasukkan ketiga parameter yang ada. Contohnya adalah sebagai berikut:

< ? echo dateDiff("d","2005/02/12","2006/02/14"); ?>

Contoh tersebut akan mencari durasi dalam satuan hari antara tanggal 12 Februari 2005 sampai dengan 14 Februari 2006.

Source: www.sony-ak.com