/vue-bootstrap-datetimepicker

Vue.js component for eonasdan bootstrap datetimepicker

Primary LanguageJavaScriptMIT LicenseMIT

Vue-Bootstrap-DatetimePicker

vue-js downloads npm-version github-tag license

Vue.js v2.x component for eonasdan-bootstrap-datetimepicker

Installation

# npm
npm install vue-bootstrap-datetimepicker --save

# Yarn
yarn add vue-bootstrap-datetimepicker

Features

  • Reactive v-model value
    • You can change datepicker value programmatically
  • Reactive config options
    • You can change config options dynamically
    • Component will watch for changes and apply them
    • You are suggested to modify config via Vue.set
  • Play nice with vee-validate validation library

Requirements

  • Vue.js ^2.4.4
  • Bootstrap ^3.3.7 (only css)
  • jQuery >=1.8.3 || ^3.2.1
  • Moment.js ^2.18

Usage

<template>
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <date-picker v-model="date"></date-picker>
      </div>
    </div>
  </div>
</template>

<script>
  // Import required dependencies 
  import 'bootstrap/dist/css/bootstrap.css';
  
  // Import this component
  import datePicker from 'vue-bootstrap-datetimepicker';
  
  // Import date picker css
  import 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css';
   
  export default {    
    data () {
      return {
        date: new Date(),       
      }
    },
    components: {
      datePicker
    }
  }
</script>

As plugin

  import Vue from 'vue';
  import datePicker from 'vue-bootstrap-datetimepicker';
  import 'bootstrap/dist/css/bootstrap.css';
  import 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css';
  Vue.use(datePicker);

This will register a global component <date-picker>

Available props

The component accepts these props:

Attribute Type Default Description
v-model / value String / Date Object / moment / null null Set or Get date-picker value
config Object {} Datetime picker configuration options
placeholder String '' Set placeholder on input
input-class String / Object '' Add CSS class to input
name String datetime Set input field name
required Boolean false Make input field required
read-only Boolean false Make input field read-only
disabled Boolean false Make input field disabled
wrap Boolean false Set this to true when wrapped in 'input-group'
id String '' Set input field id

Install in non-module environments (without webpack)

  • Acquire required files
<!-- Date-picker dependency-->
<script src="https://unpkg.com/jquery@3.2.1/dist/jquery.min.js"></script>
<script src="https://unpkg.com/moment@2.18.1/min/moment.min.js"></script>
<link href="https://unpkg.com/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">

<!-- Date-picker itself -->
<script src="https://unpkg.com/eonasdan-bootstrap-datetimepicker@4.17.47/build/js/bootstrap-datetimepicker.min.js"></script>
<link href="https://unpkg.com/eonasdan-bootstrap-datetimepicker@4.17.47/build/css/bootstrap-datetimepicker.min.css" rel="stylesheet">

<!-- Vue js -->
<script src="https://unpkg.com/vue@2.4/dist/vue.min.js"></script>
<!-- Lastly add this package -->
<script src="https://unpkg.com/vue-bootstrap-datetimepicker"></script>
  • Use the component anywhere in your app like this
<!-- index.html -->
<div id="app" class="container">
  <div class="row">
    <div class="col-md-12">
      <date-picker v-model="date"></date-picker>
    </div>
  </div>
</div>
<script>
  //Initialize as global component
  Vue.component('date-picker', VueBootstrapDatetimePicker.default);
  
  new Vue({
    el: '#app',
    data: {
      date: null
    },    
  });
</script>

Using Webpack?

// webpack.config.js
plugins: [
    new webpack.ProvidePlugin({
      Vue: ['vue/dist/vue.esm.js', 'default'],
      jQuery: 'jquery',
      'window.jQuery': 'jquery',
      $: 'jquery',
      moment: 'moment',
    }),
  ]  

Run examples on your localhost

  • Clone this repo
  • Make sure you have node-js >=6.10 and yarn >=1.x
  • Install dependencies yarn install
  • Run webpack dev server yarn start
  • This should open the demo page at http://localhost:8080

Changelog

Changelog for each release can be found here

License

MIT License