Duration - javascript helper to input duration

Features

Demos

Simple example

Perfect for standard case.

new Duration('#demo-simple', {
    outputFormat: 'decimal'
});
Text input with duration widget initialized.

Preset value

Set default value.

new Duration('#demo-initial-value', {
    initialValue: {
        minutes: '30',
        hours:   '1'
    },
    inputs: ['hours', 'minutes', 'seconds'],
    outputFormat: 'iso'
});
Text input with duration widget initialized.

Custom labels

Label hours, minutes etc. as you wish. Useful for internationalization.

new Duration('#demo-labels', {
    inputs: ['hours', 'minutes', 'seconds'],
    labels: {
        seconds: 'seconds',
        minutes: 'minutes',
        hours  : 'hours'
    },
    outputFormat: 'decimal',
    precision: 6
});
Text input with duration widget initialized.

Hide original input

Hide original input from users.

new Duration('#demo-widget', {
    display: 'widget',
    labels: {
        minutes: 'even longer minutes',
        hours  : 'long hours'
    },
    outputFormat: 'decimal'
});
Text input with duration widget initialized.

Display as popup

Show widget when original input gets focus.

new Duration('#demo-popup', {
    display: 'popup',
    outputFormat: 'decimal'
});
Text input with duration widget initialized.

Switcher

Let users decide how they want to input values.

new Duration('#demo-switcher', {
    display: 'switcher',
    outputFormat: 'decimal',
    switcher: {
        firstLabel: 'decimal time',
        secondLabel: 'normal time'
    }
});
Text input with duration widget initialized.

Getting started

  1. Setup your HTML.

    <input id="demo"/>

    The input can be a child or a sibling of its label. Label is not obligatory, but definitely a best practise.

  2. Add duration.js before your closing body tag.

    <script src="duration.js"></script>
  3. Initialize duration.

    new Duration('#demo');

Settings

Methods

Events

Get it now

You will find all the code on Github.