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

avatar
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
abest Friendabest Friend Recent comment authors
  Subscribe  
newest oldest
Notify of
abest Friend
Guest
abest Friend

bos..coba hitung
start : 2010/02/01
end : 2010/03/01
interval : m
hasilnya ada 1 bulan ngga?
saya jg bermasalah nich tentang perhitungan hari
karena 1 bulan itu dari tanggal 1 ke tanggal 1 bulan berikutnya..
thx

abest Friend
Guest
abest Friend

bos..coba hitung
start : 2010/02/01
end : 2010/03/01
interval : m
hasilnya ada 1 bulan ngga?
saya jg bermasalah nich tentang perhitungan hari
karena 1 bulan itu dari tanggal 1 ke tanggal 1 bulan berikutnya..
thx