Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  <link rel="stylesheet" href="https://unpkg.com/flatpickr/dist/flatpickr.min.css">
  <script src="https://unpkg.com/flatpickr"></script>
</head>
<body>
  <div class="calendar">
    <input class="calendar__input" value="2017/08/03 to 2017/08/13">
    <div class="calendar__marks">
      <div class="calendar__mark calendar__mark--available">Available</div>
      <div class="calendar__mark calendar__mark--full">Full</div>
    </div>
  </div>
</body>
</html>
 
.calendar__input {
  display: none;
}
.calendar__marks {
  padding: 15px 0;
}
.calendar__mark {
  display: inline-block;
  vertical-align: middle;
  padding-left: 25px;
  position: relative;
  margin-right: 10px;
}
.calendar__mark:before {
  content: '';
  width: 15px;
  height: 5px;
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -2px;
}
.calendar__mark--available:before {
  background-color: #4fb6f5;
}
.calendar__mark--full:before {
  background-color: #feb900;
}
.calendar__days {
  padding: 15px 0;
}
 
function calendarRangeDays(selectedDates, instance) {
  var $parent = $(instance.element).parent('.calendar');
  var date1 = new Date(selectedDates[0]);
  var date2 = new Date(selectedDates[1]);
  var timeDiff = Math.abs(date2.getTime() - date1.getTime());
  var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
  if (!$parent.find('.calendar__days').length) {
    $parent.append('<div class="calendar__days"></div>')
  }
  
  if (!isNaN(diffDays)) {
    $parent.find('.calendar__days').text(diffDays + 1 + ' days');
  }
}
$('.calendar__input').flatpickr({
  inline: true,
  mode: 'range',
  onChange: function(selectedDates, dateStr, instance) {
    calendarRangeDays(selectedDates, instance);
  },
  onReady: function(selectedDates, dateStr, instance) {
    calendarRangeDays(selectedDates, instance);
  },
});
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers