Hướng dẫn date range javascript - javascript phạm vi ngày

Có thể bạn đã từng gặp trường hợp như thế này, 1 chức năng nhỏ trong tìm kiếm, trong đó có 2 option chọn ngày CheckIn & CheckOut sử dụng Datepicker và bạn nghĩ ngay phải tạo một Date Range Picker với Bootstrap Datepicker

Yêu cầu là ngày Check-in phải lớn hơn hoặc bằng ngày hiện tại, và ngày Check-out phải lớn hơn ngày Check-in, không cho phép chọn ngược về quá khứ. Date Range Date Range Date Range

Vậy phải xử lý như thế nào? Sau đây là cách giải quyết:

Demo Download

1. Chuẩn bị:

Các bạn cần download thư viện Bootstrap, và DatepickerBootstrap, và Datepicker

2. Css:

Ở phần của trang, ta thêm 2 thư viện Css của Bootstrap & Datepicker

3. Html:

Về html ta chỉ cần 2 cái input text để dùng làm checkin & checkout

Check In: Check Out:

4. Javascript [jQuery]

Bạn cần thêm 3 cái file js vào cuối trang nữa, trên thẻ đóng


Và một đoạn mã Js để hiện thị Datepicker và giới hạn khoảng thời gian lựa chọn theo yêu cầu đặt ra ban đầu:

    $[function [] {
        'use strict';
        var nowTemp = new Date[];
        var now = new Date[nowTemp.getFullYear[], nowTemp.getMonth[], nowTemp.getDate[], 0, 0, 0, 0];

        var checkin = $['#timeCheckIn'].datepicker[{
            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[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[]  checkout.date.valueOf[]] {
                var newDate = new Date[ev.date]
                newDate.setDate[newDate.getDate[] + 1];
                checkout.setValue[newDate];
            }
            checkin.hide[];
            $['#timeCheckOut'][0].focus[];
        }].data['datepicker'];
        var checkout = $['#timeCheckOut'].datepicker[{
            onRender: function [date] {
                return date.valueOf[] 

Chủ Đề