Artikel PHP/MySQL
Menghitung jumlah hari antara sekarang dan tanggal berapa saja dengan PHP
Ditulis oleh Dhimas Ronggobramantyo
Kategori: PHP/MySQL
Dibaca 5913 kali
Kita dapat menghitung jumlah hari antara sekarang dan tanggal yang kita tentukan sendiri di masa depan dengan mudah. Untunglah PHP memiliki fungsi mktime() dan time(), sehingga dengan sedikit trik kita dapat dengan mudah membuat aplikasi untuk menghitung jumlah hari.
Fungsi time()
Fungsi time(void) akan menghasilkan waktu dalam detik yang terhitung mulai dari hari 1 Januari 1970 00:00:00 GMT (Unix Epoch) hingga waktu saat ini. Jadi jika anda mencoba kode berikut ini:
<?
$tes=time(void);
echo "$tes";
?>
Anda akan mendapatkan jumlah total detik yang telah terjadi sejak 1 Januari 1970 hingga sekarang. Oke, sekarang bagaimana jika jumlah detik itu kita ubah kehari? Tentu saja dengan membaginya 60 detik, kemudian dibagi lagi 60 menit dan dibagi lagi 24 jam. Atau kita bagi langsung dengan 86400 (60x60x24). Seperti inilah kodenya:
<?
$tes=time(void)/86400;
echo "$tes";
?>
Bagaimana jika kita ingin menampilkan jumlah bulan? atau tahun? Silahkan anda pikirkan caranya, saya yakin anda pasti bisa :)
Fungsi mktime()
Fungsi mktime ( int hour, int minute, int second, int month, int day, int year [,
int is_dst]) Menghasilkan waktu dalam detik berdasarkan informasi yang kita masukkan kedalam fungsi tersebut. Waktu yang dihasilkan adalah dari tanggal 1 Januari 1970 hingga ketanggal yang kita inginkan. Oke untuk lebih jelasnya silahkan coba kode berikut ini:
<?
$hari = 01;
$bulan = 01;
$tahun = 2000;
$tes=mktime (0,0,0,$bulan,$hari,$tahun);
echo "$tes";
?>
Kode diatas akan menghasilkan jumlah detik dari 1 Januari 1970 hingga 1 Januari 2000. Jadi jika kita ingin menghitung jumlah hari dari sekarang hingga tanggal berapa saja di masa depan maka kita cukup menghitung perbedaan dari dua contoh diatas. Kita cukup menghitung perbedaan detik pada fungsi mktime() dan time(), betul?
Perhatikan kode berikut ini:
<?
$hari = 01;
$bulan = 01;
$tahun = 2009;
$tes=(mktime (0,0,0,$bulan,$hari,$tahun) - time(void))/86400;
$tes=floor($tes);
echo "$tes";
?>
Kode diatas menghasilkan jumlah hari dari sekarang hingga 1 Januari 2009. Jika anda ingin mengganti harinya anda cukup mengganti $hari, $bulan dan $tahun. Disini kita memiliki fungsi floor() yang merupkan fungsi untuk pembulatan kebawah. Mudah bukan bukan? sekarang bagaimana jika kita ingin menghitung jumlah hari dari waktu yang kita tentukan sendiri. Misal kita ingin menghitung jumlah hari dari 1 Oktober 2007 hingga 9 Oktober 2007 (Sebenarnya kita bisa langsung tahu jawabannya). Oke inilah kodenya:
<?
$hari = 01;
$bulan = 10;
$tahun = 2007;
$hari2 = 09;
$bulan2 = 10;
$tahun2 = 2007;
$tes=(mktime (0,0,0,$bulan2,$hari2,$tahun2) - mktime (0,0,0,$bulan,$hari,$tahun))/86400;
$tes=floor($tes);
echo "$tes";
?>
Kode diatas akan menghitung jumlah hari dari 1 Oktober 2007 hingga 9 Oktober 2007. Mudah bukan, saya yakin anda akan membutuhkan kode ini suatu saat. Selamat mencoba...
Komentar [20]
mantap!!!
bagaimana klo ingin menghitung jumlah hari suatu bulan.
misalnya tgl 1-feb-2007 , apa penanggalan sampai 28, 29 atau 30??
trims,..
bagaimana kode buat pencarian kata dengan php.
Terima kasih banyak.....
to Yohana
echo date('m/t/y', mktime(0,0,0,$bulan - 1));
$bulan nya diganti aja mau bulan apa, januari ya 1, februari ya 2, dst.
Ya BoLeh Lah, tp apa ngga terLaLu Standar,coZ kayanya gw ga ngeLiat CLass2 nya,Bisa bikin yang Lebih Rumit ga????????????
Ini mah peLajaran gw waktu semester 1
Tp Gw Punya proyek bwt Lu,Mau ga?
Boleh tau g gmn scriptnya klo mau buat aplikasi admin password dengan php tolong ya..........
saya kesulitan untuk menghitung jumlah data dalam field database lalu dibagi dengan banyaknya data tersebut
tutornya bagus....
mas gmn si cara bikin angka2 di sebelah kanan komentar... bleh tau sourcenya gak....
Syukron ya atas ilmu-ilmunya
mas ayah sya meningal tgl 14 mei 2006.peringatan seribu harinya kapan ya tepatnya????
gile fren.., tutor u ngebantu w bgt,,
thanx yh...
bos kok hasilnya -1 ....
satu lagi....
saran gw klo comment tu yg pling baru taruh diatas donk ....gimana sih
ngbuat gitu doank ga bisa ???????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????
sori panjang ngetes doank
satu lagi....
klo ada yang nulis koment kyak gitu gimana ya ngatasinya,,,
yang panjanggggggggg bgt ga putus....
tanpa text area...
gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
Parah ni orang... ngerusak lw ...
orang pada mau belajar...
lanjut aja bank... cuekin komentar ngga bermutu.
lw pikir ip lw ngga ke detect... t-o-l-o-l
sdh lewat bro, nih postingan lama bener dibuatnya ya
tapi msh tetep eksis, thanks ya