Vue Time Picker
A dropdown time picker for Vue.js
Demo
You can see the vue-timepicker
in action in the Demo Page
Dependencies
Vue.js v1.0.21+
Get Started
Step 1: Import the vue-timepicker.vue
import VueTimepicker from 'yoursrc/vue-timepicker.vue'
var VueTimepicker = require('yoursrc/vue-timepicker.vue')
Step 2: Include VueTimepicker in your component
var yourComponent = new Vue({
components: {VueTimepicker},
...
})
Step 3: Then, you can introduce the vue-timepicker
tag anywhere you like in your component's template
<vue-timepicker></vue-timepicker>
Usage
Basic Usage
<vue-timepicker></vue-timepicker>
Customized Time Format
<vue-timepicker format="HH:mm:ss"></vue-timepicker>
<vue-timepicker format="hh:mm A"></vue-timepicker>
<vue-timepicker format="hh:mm:ss a"></vue-timepicker>
VueTimepicker will recognizes the following tokens in the format string
Section | Token | Output |
---|
AM/PM | A | AM PM |
| a | am pm
Hour | H | 0 1 ... 22 23
| HH | 00 01 ... 22 23
| h | 1 2 ... 11 12
| hh | 01 02 ... 11 12
| k | 1 2 ... 23 24
| kk | 01 02 ... 23 24
Minute | m | 0 1 ... 58 59
| mm | 00 01 ... 58 59
Second | s | 0 1 ... 58 59
| ss | 00 01 ... 58 59
If not set, format
string will be default to "HH:mm"
Customized Picker interval
<vue-timepicker :minute-interval="5"></vue-timepicker>
<vue-timepicker :second-interval="10"></vue-timepicker>
<vue-timepicker :minute-interval="yourMinuteInterval"></vue-timepicker>
Note: Please do remember to add the :
or v-bind:
sign before the interval properties
Hide Clear Button
<vue-timepicker hide-clear-button></vue-timepicker>
Initalise Time Picker Value
var yourComponent = new Vue({
components: {VueTimepicker},
data: function () {
return {
yourTimeValue: {
HH: "10",
mm: "05",
ss: "00"
},
...
}
},
...
})
<vue-timepicker :time-value.sync="yourTimeValue" format="HH:mm:ss"></vue-timepicker>
Get Time Picker's Current Value
Method 1: Read the two-way synced time-value
variable
<vue-timepicker :time-value.sync="yourTimeValue" format="HH:mm:ss"></vue-timepicker>
console.log(this.yourTimeValue)
Method 2: Listen to the vue-timepicker-update
event
var yourComponent = new Vue({
components: {VueTimepicker},
events: {
'vue-timepicker-update': function (eventData) {
},
...
},
...
})
this.$on('vue-timepicker-update', function (eventData) {
})
Unlike the sync time-value
, which only returns the defined time format you provided in format string (HH
, mm
and ss
in the above case), the vue-timepicker-update
event will return all time format.
In the example above, when picker is set to "14:30:15" in HH:mm:ss format, vue-timepicker-update
will return the following data:
{
HH: "14",
H: "14",
hh: "14",
a: "am",
A: "AM",
h: "14",
kk: "14",
k: "14",
m: "30",
mm: "30",
s: "15",
ss: "15"
}
Whereas the time-value
will only return the data with defined tokens in format string
{
HH: "14",
mm: "30",
ss: "15"
}
Props API
Prop | Type | Required | Default Value |
---|
format | String | no | "HH:mm" |
minute-interval | Number | no | undefined |
second-interval | Number | no | undefined |
time-value | Object | no | undefined |
hide-clear-button | Boolean | no | false |
Contribution
This is the very first version of vue-timepicker
and it currently includes ES6 solution only. Please feel free to fork and help developing.
npm install
npm run dev
For detailed explanation on how things work, checkout the webpack guide and docs for vue-loader.
License
MIT