Minggu, 03 Juli 2016

Tutorial PHP : Mencari Selisih antara Dua Tanggal

Pada Tutorial kali ini, Teman-Teman akan belajar mengenai bagaimana mencari selisih antara dua tanggal dengan menggunakan PHP.

Pengantar: 

Terkadang di beberapa Sistem Informasi / Program yang Kami buat menggunakan perhitungan selisih tanggal (hari). Berikut adalah beberapa penggunaanya:
  • Mencari usia balita (dalam satuan hari). 
  • Mencari rata-rata jumlah jalan kaki setiap hari dari tanggal tertentu.
  • Menampilkan n hari menuju lebaran. 
  • Mencari rata-rata jumlah buku dipinjam setiap harinya. 
  • Membandingkan omset penjualan dengan 7 hari sebelumnya, dll. 
Oleh karena sering digunakan, fungsi ini menarik untuk dipahami.

Tampilan Program Mencari Selisih antara Dua Tanggal: 


mencari selisih hari antara dua tanggal dengan php
Gambar1. Program yang akan dibuat




Tampilan program mencari selisih antara dua tanggal
Gambar2. Contoh tampilan penggunaan Program

Spesifikasi Program Mencari Selisih antara Dua Tanggal: 

  • Tanggal dan Bulan dipiliih dengan menggunakan drop down.
  • Input Tahun dengan menggunakan input text.
  • Menampilkan selisih n hari dari tanggal yang diinput.
  • Setelah dilakukan post, input pengisian tetap ditampilkan.
  • Selisih tidak boleh minus.

Algoritma Mencari Selisih antara Dua Tanggal: 

  1. Start.
  2. Masukkan tanggal awal.
  3. Masukkan bulan awal.
  4. Masukkan tahun awal.
  5. Masukkan tanggal akhir.
  6. Masukkan bulan akhir.
  7. Masukkan tahun akhir.
  8. $date_awal adalah hasil konversi ke Unix timestamp dari (Rangkai tahun awal - bulan awal - tanggal awal dengan format Y-m-d)
  9. $date_akhir adalah hasil konversi ke Unix timestamp dari (Rangkai tahun akhir - bulan akhir - tanggal akhir dengan format Y-m-d)
  10. $hasil adalah nilai absolute dari pembagian ($date_awal - $date_akhir)/60/60/24
  11. Tampilkan  $hasil.
  12. Selesai.

Mari Mencari Selisih antara Dua Tanggal: 

  1. Buatlah folder sukalogika pada direktori www anda. Pada tahap ini struktur explorer akan terlihat seperti ini: C:\wamp\www\sukalogika>. 
  2. Buatlah folder selisih_hari pada direktori sukalogika. Pada tahap ini struktur explorer akan terlihat seperti ini: C:\wamp\www\sukalogika\selisih_hari>. 
  3. Bukalah text editor yang akan digunakan. Misalnya: Notepad atau Notepad++. 
  4. Ketik/Copy Paste kode berikut dan simpan dalam folder C:\wamp\www\sukalogika\selisih_hari> dengan nama index.php. 
    <?php // Dibuat oleh Henky Adlin Shan. // Topik: mencari selisih antara dua tanggal dengan menggunakan php. // definisikan variable hasil dengan nilai false; $hasil = false; // bila terdapat input dengan method post maka ... if (!empty($_POST)) { // rangkai tahun - bulan - dan tanggal awal kemudian konversi ke unix timestamp. // $date_awal adalah jumlah detik dari tanggal 1970-01-01 00:00:00 $date_awal = strtotime($_POST['tahun_awal'] . "-" . $_POST['bulan_awal'] . "-" . $_POST['tanggal_awal']); // rangkai tahun - bulan - dan tanggal akhir kemudian konversi ke unix timestamp. // $date_akhir adalah jumlah detik dari tanggal 1970-01-01 00:00:00 $date_akhir = strtotime($_POST['tahun_akhir'] . "-" . $_POST['bulan_akhir'] . "-" . $_POST['tanggal_akhir']); // cari nilai absolut dari selisih antara date_awal dan date_akhir. // kemudian bagi dengan 60/60/24 // 1 hari = 24 jam. // 1 jam = 60 menit. // 1 menit = 60 detik. $selisih_hari = abs(ceil($date_awal - $date_akhir) / 60 / 60 / 24); $hasil = $selisih_hari; } ?> <!DOCTYPE html> <html> <head> <title>Mencari Selisih Antara Dua Tanggal dengan PHP</title> </head> <body> <!-- Oleh Henky Adlin Shan --> <form name="selisih_hari" method="post" action="?"> <h1>Mencari Selisih Antara Dua Tanggal dengan PHP</h1> <table> <tr> <td> Tanggal Awal </td> <td> : </td> <td> <select name="tanggal_awal" id="tanggal_awal"> <optgroup label="Tanggal"> <?php // lakukan perulangan hingga 31 (maximum tanggal dalam kalendar) for ($i = 1; $i <= 31; $i++) { // konversi ke dua digit. $dua_digit = str_pad($i, 2, "0", STR_PAD_LEFT); $kata_selected = ''; // default selected bila ada $_POST. if (!empty($_POST['tanggal_awal']) && $_POST['tanggal_awal'] == $dua_digit) { $kata_selected = 'selected'; } echo '<option value="' . $dua_digit . '" ' . $kata_selected . '>' . $dua_digit . '</option>'; } ?> </optgroup> </select> <select name="bulan_awal" id="bulan_awal"> <optgroup label="Bulan"> <?php for ($i = 1; $i <= 12; $i++) { $dua_digit = str_pad($i, 2, "0", STR_PAD_LEFT); $kata_selected = ''; if (!empty($_POST['bulan_awal']) && $_POST['bulan_awal'] == $dua_digit) { $kata_selected = 'selected'; } echo '<option value="' . $dua_digit . '" ' . $kata_selected . '>' . $dua_digit . '</option>'; } ?> </optgroup> </select> <?php $tahun_awal = ""; if (!empty($_POST['tahun_awal'])) { $tahun_awal = $_POST['tahun_awal']; } ?> <input type="text" value="<?php echo $tahun_awal; ?>" placeholder="tahun" name="tahun_awal" id="tahun_awal" size=4 maxlength="4" /> </td> </tr> <tr> <td> Tanggal Akhir </td> <td> : </td> <td> <select name="tanggal_akhir" id="tanggal_akhir"> <optgroup label="Tanggal"> <?php for ($i = 1; $i <= 31; $i++) { $dua_digit = str_pad($i, 2, "0", STR_PAD_LEFT); $kata_selected = ''; if (!empty($_POST['tanggal_akhir']) && $_POST['tanggal_akhir'] == $dua_digit) { $kata_selected = 'selected'; } echo '<option value="' . $dua_digit . '" ' . $kata_selected . '>' . $dua_digit . '</option>'; } ?> </optgroup> </select> <select name="bulan_akhir" id="bulan_akhir"> <optgroup label="Bulan"> <?php for ($i = 1; $i <= 12; $i++) { $dua_digit = str_pad($i, 2, "0", STR_PAD_LEFT); $kata_selected = ''; if (!empty($_POST['bulan_akhir']) && $_POST['bulan_akhir'] == $dua_digit) { $kata_selected = 'selected'; } echo '<option value="' . $dua_digit . '" ' . $kata_selected . '>' . $dua_digit . '</option>'; } ?> </optgroup> </select> <?php $tahun_akhir = ""; if (!empty($_POST['tahun_akhir'])) { $tahun_akhir = $_POST['tahun_akhir']; } ?> <input type="text" value="<?php echo $tahun_akhir; ?>" placeholder="tahun" name="tahun_akhir" id="tahun_akhir" size=4 maxlength="4" /> </td> </tr> <?php // tampilkan jumlah selisih hari bila $hasil tidak bernilai false. // operator !== digunakan agar kita bisa menampilkan hasil bila nilai $hasil adalah 0. if ($hasil !== false) { ?> <tr> <td colspan="3"> Selisih <?php echo $hasil; ?> hari. </td> </tr> <?php } ?> </table> <input type="submit" value="cari selisih hari" /> </form> </body> </html>
  5. Akses dengan alamat http://localhost/sukalogika/selisih_hari/ 
  6. Selamat anda berhasil membuat program yang mampu mencari selisih antara dua tanggal dengan PHP.

Tidak ada komentar: