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...