Cara Mencari Selisih Waktu menggunakan Fungsi mktime() pada php

Tulisan diambil dari http://hendrasaldorado.wordpress.com

Mencari selisih waktu merupakan hal yang sangat penting, terutama berhubungan dengan agenda, meeting ataupun kegiatan-kegiatan lain yang akan Anda ikuti. Selain itu, mengetahui selisih waktu dapat digunakan sebagai pengingat/alarm bagi aktifitas Anda, sehingga bisa mengetahui berapa lama lagi kegiatan yang sudah kita rencanakan dari waktu pada saat ini, sehingga bisa melakukan persiapan dengan matang.

Secara sederhana, mencari selisih waktu mungkin bisa dilakukan secara mudah. Kita tinggal menentukan waktu kegiatan yang akan datang dikurangi dengan waktu saat ini. That’s right, itu memang benar. Namun yang menjadi permasalahan, bagaimana itu bisa diimplementasikan dengan menggunakan bahasa pemrograman.

Pada kesempatan ini, saya akan coba sharing  mengenai bagaimana cara mencari selisih waktu dalam bahasa pemrograman php. Tentu ada berbagai cara yang digunakan untuk menghitung selisih waktu dalam bahasa pemrograman php. Salah satu cara untuk menghitung selisih waktu dalam php yaitu dengan menggunakan fungsi mktime(). Fungsi mktime() adalah suatu fungsi yang digunakan untuk mendapatkan/memanipulasi suatu tanggal ataupun waktu tertentu dalam satuan detik (long integer) terhitung mulai dari 1 Januri 1970 00:00:00 GMT.

Format/sintak dari Fungsi mktime() yaitu:

mktime(int hour, int minute, int second, int month, int day, int year [, int is_dst]);

Sekarang kita akan coba mencari selisih dari waktu yang ditentukan dengan waktu saat ini. Sebagai contoh kita akan mencari selisih waktu untuk kegiatan yang akan dilaksanakan pada tanggal 20 September 2012 jam 08:00:00 WIB dengan waktu saat ini.

Untuk mendapatkan mktime() pada tanggal 20 Septembember 2012 pukul 08:00:00 WIB adalah:

$waktu_tujuan = mktime(8,0,0,9,20,2012);

Sekarang untuk mendapatkan mktime() pada waktu saat ini adalah:

$waktu_sekarang = mktime(date(“H”), date(“i”), date(“s”), date(“m”), date(“d”), date(“Y”));

Fungsi date di atas adalah fungsi yang digunakan untuk mendapatkan waktu saat ini. Dimana date(“H”), date(“i”) dan date(“s”) adalah fungsi untuk mendapatkan Jam, Menit dan Detik saat ini. Sedangkan date(“m”), date(“d”), date(“y”) digunakan untuk mendapatkan Bulan, Tanggal dan Tahun saat ini.

Setelah kita mendapatkan jumlah detik dari kedua waktu di atas, kita tinggal mengurangi kedua waktu tersebut untuk mendapatkan selisih dari kedua waktu tersebut dengan menggunakan script berikut:

$selisih_waktu = $waktu_tujuan – $waktu_sekarang;

Dari script di atas, sekarang kita sudah mendapatkan selisih dari kedua waktu tersebut, akan tetapi masih dalam hitungan detik. Sekarang bagaimana selisih dalam hitungan detik tersebut akan kita konversi menjadi jumlah hari, jumlah jam, jumlah menit dan jumlah detik supaya lebih mudah diingat. Caranya cukup mudah. Dalam 1 hari ada 24 jam; dalam 1 jam ada 60 menit; dan dalam 1 menit ada 60 detik. Jadi, dalam 1 hari terdapat 60x60x24 = 86400 detik. Sehingga untuk mencari jumlah hari dari sejumlah satuan detik adalah jumlah detik dibagi dengan 86400. Sedangkan sisa pembagiannya (modulo) akan digunakan kembali untuk menghitung jumlah dalam satuan jam. Demikian juga seterusnya untuk menghitung dalam satuan menit ataupun detiknya.

Berikut adalah script yang digunakan untuk mencari jumlah dalam satuan hari, jam, menit dan detik:

Untuk menghitung jumlah dalam satuan hari:

$jumlah_hari = floor($selisih_waktu/86400);

Untuk menghitung jumlah dalam satuan jam:
$sisa = $selisih_waktu % 86400;
$jumlah_jam = floor($sisa/3600);

Untuk menghitung jumlah dalam satuan menit:
$sisa = $sisa % 3600;
$jumlah_menit = floor($sisa/60);

Untuk menghitung jumlah dalam satuan detik:
$sisa = $sisa % 60;
$jumlah_detik = floor($sisa/1);

Fungsi floor() di atas adalah fungsi yang digunakan untuk pembulatan ke atas dari sebuah bilangan desimal menjadi bilangan bulat integer.

Contoh script sederhana untuk mendapatkan selisih waktu dari suatu kegiatan yang akan datang dengan waktu pada saat ini seperti kasus di atas adalah :

<?php
//tentukan waktu tujuan
$waktu_tujuan = mktime(8,0,0,9,20,2012);

//tentukan waktu saat ini
$waktu_sekarang = mktime(date(“H”), date(“i”), date(“s”), date(“m”), date(“d”), date(“Y”));

//hitung selisih kedua waktu
$selisih_waktu = $waktu_tujuan – $waktu_sekarang;

//Untuk menghitung jumlah dalam satuan hari:
$jumlah_hari = floor($selisih_waktu/86400);

//Untuk menghitung jumlah dalam satuan jam:
$sisa = $selisih_waktu % 86400;
$jumlah_jam = floor($sisa/3600);

//Untuk menghitung jumlah dalam satuan menit:
$sisa = $sisa % 3600;
$jumlah_menit = floor($sisa/60);

//Untuk menghitung jumlah dalam satuan detik:
$sisa = $sisa % 60;
$jumlah_detik = floor($sisa/1);

echo “Tanggal saat ini: “.date(“d-m-Y H:i:s”).”<br>”;
echo “Tanggal pelaksanaan: “.date(“20-9-2012 08:00:00″).”<br>”;
echo “<b>Waktu menjelang pelaksanaan tinggal: “.$jumlah_hari.” hari “.$jumlah_jam.” jam “.$jumlah_menit.” menit “.$jumlah_detik.” detik lagi</b>”;
?>

Just sharing. Semoga bermanfaat…:D

Tulisan diambil dari http://hendrasaldorado.wordpress.com

This entry was posted in Pemrograman PHP. Bookmark the permalink.

One Response to Cara Mencari Selisih Waktu menggunakan Fungsi mktime() pada php

  1. Nugik says:

    thanks for sharing…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s