JSFiddle - React, Tailwind, and code Playground

by Kai_Draord

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/jquery.datetimepicker.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/jquery.datetimepicker.min.css">
<input type="text" id="start-date" style="visibility: hidden">
<input type="text" id="end-date" style="visibility: hidden">
<div class="start-date-visible"></div>
<div class="end-date-visible"></div>
<div id="datepicker"></div>

JavaScript

$(document).ready(function() {
    // jquery datepicker settings
    $(function() {
        $("#datepicker").datepicker({
            numberOfMonths: 3,
            showButtonPanel: false,
            minDate: 0,
            beforeShowDay: function(date) {
                debugger;
                var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $('#start-date').val());
                var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $('#end-date').val());
                if (date >= date1 && date <= date2) {
                    return [true, 'ui-state-selected-range', ''];
                }
                return [true, '', ''];
            },
            onSelect: function(dateText, inst) {
                var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $('#start-date').val());
                var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $('#end-date').val());
                if (!date1 || date2) {
                    $('#start-date').val(dateText);
                    $('.start-date-visible').text(dateText);
                    $('#end-date').val('');
                    $('.end-date-visible').text('');
                    $(this).datepicker('option', dateText);
                } else {
                    $('.end-date-visible').text(dateText);
                    $('#end-date').val(dateText);
                    $(this).datepicker('option', null);
                }
            }
        });
    });
});