Mencari Durasi Antar Dua Tanggal dengan PHP

0 0 vote
Article Rating

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

0 0 vote
Article Rating
Subscribe
Notify of
guest
2 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
abest Friend
abest Friend
17 August 2010 09:58

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
abest Friend
20 November 2018 14:56

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