Bootstrap-datepicker provides a flexible datepicker widget in the Twitter bootstrap style.


This is a fork of Stefan Petre’s original code; thanks go to him for getting this thing started!

Please note that this fork is not used on Stefan’s page at this time, nor is it maintained or contributed to by him.

Versions are incremented according to semver.

Online Demo


These are the specific versions bootstrap-datepicker is tested against (js files) and built against (css files). Use other versions at your own risk.


Requires bootstrap’s dropdown component (dropdowns.less) for some styles, and bootstrap’s sprites (sprites.less and associated images) for arrows.

A standalone .css file (including necessary dropdown styles and alternative, text-based arrows) can be generated by running build/build_standalone.less through the lessc compiler:

$ lessc build/build_standalone.less datepicker.css


Call the datepicker via javascript:


Data API

As with bootstrap’s own plugins, datepicker provides a data-api that can be used to instantiate datepickers without the need for custom javascript. For most datepickers, simply set data-provide="datepicker" on the element you want to initialize, and it will be intialized lazily, in true bootstrap fashion. For inline datepickers, use data-provide="datepicker-inline"; these will be immediately initialized on page load, and cannot be lazily loaded.

<input data-provide="datepicker">

You can disable datepicker’s data-api in the same way as you would disable other bootstrap plugins:



Options are passed to the datepicker function via an options hash at instantiation:

    format: 'mm/dd/yyyy',
    startDate: '-3d'

Most options may be provided as data-attributes on the target element:

<input class="datepicker" data-date-format="mm/dd/yyyy">
    startDate: '-3d'

Defaults for all options can be modified directly by changing values in the $.fn.datepicker.defaults hash:

$.fn.datepicker.defaults.format = "mm/dd/yyyy";
    startDate: '-3d'

No Conflict mode

$.fn.datepicker.noConflict provides a way to avoid conflict with other jQuery datepicker plugins:

var datepicker = $.fn.datepicker.noConflict(); // return $.fn.datepicker to previously assigned value
$.fn.bootstrapDP = datepicker;                 // give $().bootstrapDP the bootstrap-datepicker functionality

Indices and tables