Membuat pengecekan tanggal masa aktif dengan php

Membuat pengecekan tanggal masa aktifKasus pengecekan tanggal masa aktif sering kita temui pada beberapa aplikasi web dengan php seperti masa pendaftaran siswa baru, masa registrasi ulang, masa aktif berlangganan, masa aktif keanggotaaan, masa berlaku kartu dll. Berikut ini saya akan berbagi tentang bagaimana membuat pengecekan tanggal masa aktif pada kasus waktu pendaftaran online dengan php.

Saya tidak akan bahas tentang bagai mana membuat pendaftaran onlinenya, tapi hanya untuk melakukan pengecekan masa/tanggal diperbolehkan mendaftarnya.

Sedikit ilustrasi kasusnya :

Misal anda ingin membuat sistem pendaftaran online. Aturan mainya adalah : user hanya diperbolehkan mengisi formulir pada tanggal tertentu misal dari tanggal 15 Mei 2013 s/d 20 Mei 2013. Jika user coba mengakses halaman pendaftaran sebelum tanggal tersebut maka kita munculkan pesan pendaftaran belum dibuka, dan jika diakses setelah tanggal itu maka muncul pesan pendaftaran sudah ditutup. Mudahan sudah bisa difahami kasusnya.

Dari segi logika, untuk melakukan pengecekan seperti saya jelaskan diatas, kita hanya membandingkan tanggal sekarang dengan tanggal dibuka dan ditutup pendaftaran. Misal sekarang tanggal 10 Mei 2013, jika dibandingkan dengan tanggal pendaftaran yaitu 15 Mei 2013 maka tanggal sekarang lebih kecil/kurang dari awal pendaftaran.

Jadi input untuk proses yang kita buat terdiri dari 3 variabel yaitu : tanggal_sekarang, tanggal_mulai, dan tanggal_akhir. Untuk input tanggal sekarang bisa kita ambilkan dari tanggal sistem, sedangkan tanggal mulai dan akhir bisa kita simpan dalam database atau dibuat pengaturan secara global pada script php. Untuk kasus ini tanggal awal dan akhir saya deklarasikan dalam script php.

Implementasi dalam script php bisa kita lihat berikut :

<?php
    $start_date = strtotime('2013-05-15 00:00:00');
    $end_date = strtotime(2013-05-20 00:00:00);
    $todays_date = strtotime(date("Y-m-d H:m:s"));
    if ($todays_date >= $start_date && $todays_date <= $end_date)
    {
        //Pendaftaran dibuka
        //Anda bisa masukkan proses yang dilakukan jika pendaftaran dibuka
    }
    else
    {
        if($todays_date < $start_date)
        {
            //Pendaftaran Belum dibuka
            //Anda bisa masukkan pesan atau proses jika belum dibuka
        }
        else
        {
            //Pendaftaran sudah ditutup
            //Anda bisa masukkan pesan atau proses jika sudah ditutup
        }
    }
?>

Dari script diatas, mungkin anda bisa melihat saya mengubah format tanggal sekarang, tanggal mulai dan tanggal berakhir ke versi timestamp dengan fungsi strtotime. Ini tujuanya mempermudah dan meningkatkan akurasi perbandingan tanggal dan jam. Dari hasil konversi nilai tersebut maka langsung dibandingkan antara jam sekarang, jam mulai dan jam akhirnya dengan operator logika <= dan >=

Dari contoh script diatas kita bisa kembangkan menjadi sebuah fungsi sederhana yang lebih mudah diakses kapanpun dalam bagian program. Penyederhanaanya bisa dilakukan seperti ini :

<?php
function CekPendaftaran($todays_date,$start_date,$end_date)
{
   $start_date = strtotime($start_date); 
   $end_date = strtotime($end_date);
   $todays_date = strtotime($todays_date); 
   if ($todays_date >= $start_date && $todays_date <= $end_date) 
   { 
      return 0;//BUKA
   } 
   else 
   { 
      if($todays_date < $start_date)
      {
         return 1; //BELUM
      }
      else
      {
         return 2; //LEWAT
      }
   }
}
//Cara memanggilnya
$DATE_NOW=date("Y-m-d H:m:s");
$START_DATE='2013-05-15 00:00:00';
$END_DATE='2013-05-20 13:00:00';
$CekStatus=CekPendaftaran($DATE_NOW,$START_DATE,$END_DATE);
//Sekarang $CekStatus memiliki nilai array yang terdiri dari 3 (0 atau 1 atau 2)
if($CekStatus==1) //1 BELUM BUKA
{
   echo "Belum Buka";
   //Tuliskan pesan jika belum dibuka
} 
elseif($CekStatus==2) //2 SUDAH TUTUP
{
   echo "Sudah Tutup";
   //Tuliskan pesan jika sudah ditutup
} 
elseif($CekStatus==0) //0 SEDANG BUKA
{
   echo "Sedang Buka";
   //Munculkan form jika sedang dibuka
}
?>

Jika anda ingin mencobanya, silahkan copy script diatas kedalam sebuah file misal cektanggal.php, kemudian sesuaikan tanggal mulai dan tanggal selesainya agar hasilnya bisa terlihat.

Semoga bermanfaat dan selamat mencoba

Zainal Hakim

** Bebas disunting dengan menyebutkan sumber **

Artikel Lainnya

  • Variasi cara menulis ke layar dengan php
    Artikel ini mungkin tak semenarik judulnya Variasi cara menulis ke layar dengan php, tapi sering kali saya menemui orang yang sedang belajar php bingung jika melihat beberapa variasi penggunaan kode php untuk menulis ke layar. Pada artikel ini saya akan buatkan beberapa contoh cara menampilkan tulisan/gambar ke layar dengan php.
  • Membuat laporan detail bercabang dengan php
    Kali ini saya ingin bahas tentang bagaimana membuat laporan detail bercabang dengan php. Maksud bercabang disini adalah sebuah laporan memiliki sub detail, dan didalam sub masih ada lagi laporan lagi sesuai sub yang dipilih.
  • Mengatur format tanggal dalam php
    PHP telah menyediakan fungsi untuk menampilkan tanggal dalam berbagai format yang dituliskan dalam bahasa inggris. Bagaimana jika kita perlu menampilkan tanggal dalam format indonesia? Artikel berikut akan menjelaskan beberapa format tanggal dalam php dan cara menampilkannya. SIlahkan anda simak.
  • Mengurutkan data mysql dalam laporan php
    Data biasanya diinput dengan cara tak beraturan, bisa saja nama yang awalan Z lebih dulu dimasukkan, atau nomor urut yang lebih besar lebih duluan tergantung data mana yang lebih awal disiapkan. Dan jika dibuatkan laporannya dengan cara biasa saja, tentunya akan muncul sesuai dengan urutan memasukkan datanya ke dalam database. Bagaimana cara mengurutkan data tersebut dalam laporan php?
  • Membuat laporan dari php ke excel
    Dalam sebuah aplikasi berbasis web, biasanya kita diminta untuk menghasilkan laporan dalam berbagai format. Yang paling umum yaitu format html (langsung ditampilkan di browser), kemudian format pdf dan format excel.

Kiriman terbaru