Cara membatasi date ketika user input

gan gimana ya cara setting tanggal agar user tidak bisa menuliskan tanggal < tanggal saat ini dan minimal itu h+1 dia bisa masukiinny? ane pake CI gan
avatar werich1

@werich1

86 Kontribusi 6 Poin

Login untuk menanggapi


Jawaban Terpilih

oh, make jquery-ui datetimepicker... bisa dicoba contoh script ini gan,,,
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</title>

  <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://momentjs.com/downloads/moment.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#datepicker" ).datepicker({                  
        minDate: moment().add('d', 1).toDate(),
    });
  } );
  </script>
</head>
<body>
 
<p>Date: <input type="text" id="datepicker"></p>
 
 
</body>
</html>
Note: biar gampang, tambahin moment.js buat ngehandle tanggalnya hasilnya kurang lebih kek gini Screen%2BShot%2B2020-02-09%2Bat%2B07.03.54.png
avatar BagusAulia

@BagusAulia

12 Kontribusi 4 Poin

Jawaban

bisa make ini gan
<?php
$date1=date_create("2020-02-01");
$date2=date_create("2020-01-10");
$diff=date_diff($date1,$date2);

$realDiff = $diff->format("%R%a");

echo $realDiff;

if($realDiff > 1) {
	echo "boleh";
}else {
	echo "tidak boleh";
}
echo "<br>";
bisa agan sesuaikan sendiri
avatar BagusAulia

@BagusAulia

12 Kontribusi 4 Poin

Login untuk menanggapi


bisa di jelasin ga gan itu maksudny gmna hehehe dan di sql kira2 pake tipeny apa?
avatar werich1

@werich1

86 Kontribusi 6 Poin

Login untuk menanggapi


tergantung kebutuhan, gan... bisa make tipe "date" kalau hanya dibutuhkan tanggal.. bisa make tipe "datetime" kalau butuh tanggal dan jam... tapi, 2 tipe itu udah bisa di-handle ama fungsi ini sih... lebih jelasnya tuh gini
<?php
$tglSekarang  = date_create("2020-02-01");
$tglInput = date_create("2020-01-10");
$interval  = date_diff($tglSekarang,$tglInput);

/**
 * menghitung interval waktu dalam hari 
 * dengan hasil bilangan negatif (ex. -2) 
 * apabila tglinput < tgl sekarang, 
 * 
 * dan hasil bilangan positif 
 * apabila tglInput > tgl sekarang
**/

$intervalHari    = $diff->format("%R%a");  


//memberi if else dengan rule tgl input harus minimal 1 hari dari tanggal sekarang
if($realDiff >= 1) {
	echo "boleh";
}else {
	echo "tidak boleh";
}
avatar BagusAulia

@BagusAulia

12 Kontribusi 4 Poin

  • tapi kalo misalkan gitu bukanny harus di ganti tiap hari gan biar ke disable past dateny? - @werich1

Login untuk menanggapi


owh itu cuman contoh tanggal, gan... untuk implementasi dinamisnya yang variabel tgl sekarang bisa make script ini
date("Y-m-d")
avatar BagusAulia

@BagusAulia

12 Kontribusi 4 Poin

  • kan ane make CI ya gan kalo buat implemenny gmna gan? apakah pas di inputanny bisa? - @werich1

Login untuk menanggapi


ane nyoba jg pake datepicker tp ga keluar datepickerny wkwk
avatar werich1

@werich1

86 Kontribusi 6 Poin

Login untuk menanggapi


kalo validasi secara realtime ketika memasukkan data inputan, bisa make jquery.. cthnya
$(".input-date").focusout(function() {
   var start = $(this).val(),
    end   = new Date(),  
    diff  = new Date(start - end),  
    days  = diff/1000/60/60/24;  
  
    if (days >= 1) {
          console.log("boleh");
    } else {
          console.log("tidak boleh");
    }
}
kalau cara sebelumnya itu validasi ketika data masuk ke controller terlebih dahulu,,
avatar BagusAulia

@BagusAulia

12 Kontribusi 4 Poin

Login untuk menanggapi


[1]: https://pastebin.com/kF7BYzsd https://pastebin.com/Wigaz97V ini gan ane taro di sini codingny, ane dah tulis itu code di form ane id dari inputny jg udh tapi ga mau keluar di modalny pas di klik
avatar werich1

@werich1

86 Kontribusi 6 Poin

Login untuk menanggapi


oh, make jquery-ui datetimepicker... bisa dicoba contoh script ini gan,,,
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</title>

  <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://momentjs.com/downloads/moment.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#datepicker" ).datepicker({                  
        minDate: moment().add('d', 1).toDate(),
    });
  } );
  </script>
</head>
<body>
 
<p>Date: <input type="text" id="datepicker"></p>
 
 
</body>
</html>
Note: biar gampang, tambahin moment.js buat ngehandle tanggalnya hasilnya kurang lebih kek gini Screen%2BShot%2B2020-02-09%2Bat%2B07.03.54.png
avatar BagusAulia

@BagusAulia

12 Kontribusi 4 Poin

  • wah gokil sih gan bisa gan wkwk, thanks banget nih, jadi + 1 hariny karena ane make CI jadi ternyata harus di taro di viewny langsung tag <script>ny wkwk keren2 - @werich1

Login untuk menanggapi


Login untuk gabung berdiskusi