Cara Membuat Validasi Tanggal belum Dibuka dan Sudah Dibuka Laravel

Halo gaes berjumpa kembali, kali ini saya akan berbagi ilmu tentang validasi tanggal yang biasanya digunakan untuk membuat pendaftaran. Dimana validasi itu di buat untuk memberikan batasan waktu tertentu atau bisa di bilang penjadwalan seperti contohnya Pendaftaran Belum Dibuka, Pendaftaran telah dibuka, dan Pendaftaran Telah Di Tutup.

Sebeneranya ini hanya logika sederhana dengan menggunakan tiga parameter yaitu Today Date, Start Date, dan End Date. Today Date adalah parameter tanggal hari ini, Start Date yaitu tanggal kapan dimulainya, dan End Date tanggal berakhirnya suatu jadwal atau kegiatan sesuai dengan keperluan temen-temen semua yah.

Karena kalo dalam teknik coding itu bagaimana kita buat coding itu bisa efektif, maka yang pertama aku mau buat adalah fungsi khusus yang isi parameternya tiga tanggal tersebut. Tujuannya kita buat fungsi tersebut adalah agar bisa di gunakan berulang-ulang jika dibutuhkan dengan memanggil fungsi tersebut supaya tidak terlalu panjang code kita nanti hehe.

Fungsi Validasi

public function validasi($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 array(
            'value' => 0,
            'messages' => 'Sedang Berlangsung'
        ); //BUKA
    } else {
        if ($todays_date < $start_date) {
            return array(
                'value' => 1,
                'messages' => 'Belum Dibuka'
            ); //BELUM
        } else {
            return array(
                'value' => 2,
                'messages' => 'Sudah Ditutup' 
            ); //LEWAT 
        }
    }
}

Sesuai penjelasan diatas bahwa fungsi tersebut mempunyai tiga parameter. Fungsi tersebut mempunyai balikan nilai berupa array yang isinya ada index value dan messages bisa di gunakan sesuai kebutuhan. Contohnya seperti di bawah ini.

Kita akan ambil messagenya

$status = $this->validasi($todays_date, $start_date, $end_date);

echo $status['messages'];

Kita akan ambil nilai value

$status = $this->validasi($todays_date, $start_date, $end_date);

if ($status['value'] == 0){
    return redirect()->route('name.route'); //mau dialihkan ke route

    /* atau */

    return view('view'); // atau mau dialihkan ke view
} elseif ($status['value'] == 1){
    return redirect()->route('name.route');

    /* atau */

    return view('view');
} elseif ($status['value'] == 2){
     return redirect()->route('name.route');

    /* atau */

    return view('view');
  }

Penggunaan Fungsi

Kita coba gunakan fungsi tersebut langsung dalam controller ya, buat dulu controller atau memakai yang sudah ada juga tidak apa-apa php artisan make:controller DateController

app/Http/Controllers/DateController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class DateController extends Controller
{
    public function index()
    {
        $start_date = '2020-07-09';
        $end_date = '2020-07-10';
        $today_date = date("Y-m-d");

        $check_status = $this->validasi($today_date,$start_date, $end_date);

        echo $check_status['messages'];

    }

    public function validasi($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 array(
                'value' => 0,
                'messages' => 'Sedang Berlangsung'
            ); //BUKA
        } else {
            if ($todays_date < $start_date) {
                return array(
                    'value' => 1,
                    'messages' => 'Belum Dibuka'
                ); //BELUM
            } else {
                return array(
                    'value' => 2,
                    'messages' => 'Sudah Ditutup' 
                ); //LEWAT 
            }
        }
    }
}

Seletah code diatas sudah dibuat selanjutnya buat route untuk membuat urlnya. Disini terserah temen-temen mau namanya apa ya.

routes/web.php
Route::get('/validasi-tanggal', 'DateController@index')->name('validasi');

Lalu coba jalankan php artisan serve dan test url diatas menggunakan browser.

Request

Jika temen-temen ingin dibuatkan tutorial tinggal email aja yah.

Up next