Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Split value datepicker dates ke input fields

Halo master js,
langsung aja ya. saya memakai datepicker bootstrap.
Misal
value date_A= 12/02/2018
value date_B= 16/02/2018

sebelum tekan tombol submit jadi otomatis value date di atas di split dan diinsert ke hidden file misalnya sebagai berikut ;
<input type="hidden" id="cd" name="cd">
<input type="hidden" id="cm" name="cm">
<input type="hidden" id="cy" name="cy">
<input type="hidden" id="cod" name="cod">
<input type="hidden" id="com" name="com">
<input type="hidden" id="coy" name="coy">



Input fields sebagai berikut ;
<input type="text" class="form-control startRangePicker" name="ci" placeholder="Checkin date" readonly="readonly" />
<input type="text" class="form-control endRangePicker" name="co" placeholder="Checkout date" readonly="readonly" />
fungsi js bawaan ;
$(function(){
// disabling dates
var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);

var checkin = $('.startRangePicker').datepicker({
format: 'dd/mm/yyyy',
onRender: function(date) {
return date.valueOf() < now.valueOf() ? 'disabled' : '';
}

}).on('changeDate', function(ev) {
if (ev.date.valueOf() > checkout.date.valueOf()) {

var newDate = new Date(ev.date)
newDate.setDate(newDate.getDate() + 1);
checkout.setValue(newDate);
}
checkin.hide();
$('.endRangePicker')[0].focus();
}).data('datepicker');
var checkout = $('.endRangePicker').datepicker({
format: 'dd/mm/yyyy',
onRender: function(date) {
return date.valueOf() <= checkin.date.valueOf() ? 'disabled' : '';
}
}).on('changeDate', function(ev) {
checkout.hide();
}).data('datepicker');
});

Comments

  • di split buat apa ya ?

    bukannya lebih gampang langsung dari

    <input type="text" class="form-control startRangePicker" name="ci" placeholder="Checkin date" readonly="readonly" />
    <input type="text" class="form-control endRangePicker" name="co" placeholder="Checkout date" readonly="readonly" />

    yg dikirim langsung ke server ?
  • Untuk keperluan booking engine third party om krn setup dithird party hrs displit. Untuk yg split udah bisa. Satu lagi yg saya otak atik ga bisa om kalkulasi night antara 2 tgl di atas, bs kasi contohnya om. Saya bingung naruh fungsi msl function hitungDays()
  • third party php ? atau third party javascript ?

    ini fungsi di mana ?
    php atau javascript ?
  • edited February 6
    Third party php om,
    saya taruh di pastebin om, karena htmlnya gak muncul saya paste disini :smile:

    spesifikasi : https://pastebin.com/yhdmpvjy


    Masalahnya saya gak bisa mencari total nights dari tanggal yang di pilih oleh user.

  • edited February 6
    Kalo perhitungan sebelum tekan submit gimana om? Setelah di split masing - masing tanggal dan valuenya tanggal di kirim ke input hidden seperti dibawah ini (value split sudah bisa)
    formdatepicker.php
    <*input type="hidden" id="cd" name="cd">
    <*input type="hidden" id="cm" name="cm">
    <*input type="hidden" id="cy" name="cy">
    <*input type="hidden" id="cod" name="cod">
    <*input type="hidden" id="com" name="com">
    <*input type="hidden" id="coy" name="coy">

    // masalah mencari selisih hari setelah memilih tanggal checkout otomatis nilai night masuk ke input di bawah ini sebelum tekan tombol submit
    <*input type="hidden" name="nite" id="nite">
  • edited February 6
    itu kalo liat form nya ...
    ci & co elo mestinya masih ada, dan isinya masih tanggal lengkap, bukan di split
    lha wong 2-2 nya ada "name" nya.

    tinggal pake cara di tret yg satunya, strtotime(), lalu cari selisihnya
  • kalo manipulasi di phpnya sudah paham om, cuma dari sisi javascriptnya saya masih gak mudeng.

    https://pastebin.com/hNipv48b di ink fungsi yang calDays(); tapi saya test via inspect element saat memilih datepicker value total days tidak terkirim ke input type dengan id=nite

  • ci & co value nya apa ?
    format tanggal nya bagaimana ?
    yyyy-mm-dd ? atau lain ?
  • Formatnya dd/mm/yyyy om
  • format elo bikin ribet ...

    ya mau ndak mau pake yg sudah di split.
    jadikan date di javascript.
    https://www.w3schools.com/jsref/jsref_obj_date.asp

    pake model yg ini :
    var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
    karena elemen elo sudah di split

    kalo 2 tanggal sudah elo jadikan date, bisa elo kurangkan

    <script>
    var d1=new Date(2017,11,20); // 20 Nop 2017
    var d2=new Date(2017,12,4); // 4 Des 2017

    var selisih_hari=d2-d1; // milidetik

    selisih_hari=selisih_hari/(24*60*60*1000); // 24 jam, 60 menit, 60 detik, 1000 milidetik

    document.write(selisih_hari+" hari");
    </script>
Sign In or Register to comment.