Demo
Installation
bower install jquery-time-duration-picker
Usage
<input id="widget" type="text" readonly="readonly" placeholder="Click me!">
<!-- 3 hours, 25 minutes and 45 seconds -->
<!-- Number of seconds -->
<input id="seconds" type="hidden" name="seconds" value="12345">
<!-- ISO 8601 -->
<input id="duration" type="hidden" name="duration" value="PT3H25M45S">
...
<script>
$(function() {
$('#widget').timeDurationPicker({
seconds: true,
defaultValue: function() {
return $('#duration').val();
},
onSelect: function(element, seconds, duration, text) {
$('#seconds').val(seconds);
$('#duration').val(duration);
$('#widget').val(text);
}
});
});
</script>
Also see this example.
Defaults
To set default options for all widgets use $.timeDurationPicker.defaults([options]) function. Call this function before widget initialization!
Options
| Name | Type | Default | Description |
|---|---|---|---|
| css | object |
CSS rules for main div | |
| defaultValue |
|
Initial value
| |
| lang | String |
"en_US" |
Language identifier |
| onSelect | function(element, seconds, duration, text) |
Callback function | |
| years | Boolean |
true |
Display or not years |
| months | Boolean |
true |
Display or not months |
| days | Boolean |
true |
Display or not days |
| hours | Boolean |
true |
Display or not hours |
| minutes | Boolean |
true |
Display or not minutes |
| seconds | Boolean |
false |
Display or not seconds |
Languages
English is the default language. If you want to add any other language, follow this instructions:
- First, you need to add translation to your language;
- Second, you need to define plural rules of your language. See Language Plural Rules;
Here is example adding Russian translation:
// Add translation
$.timeDurationPicker.langs.ru_RU = {
years: "Годы",
months: "Месяцы",
days: "Дни",
hours: "Часы",
minutes: "Минуты",
seconds: "Секунды",
and: "и",
button_ok: "Выбрать",
units: {
year: {
one: "год",
few: "года",
many: "лет"
},
month: {
one: "месяц",
few: "месяца",
many: "месяцев"
},
day: {
one: "день",
few: "дня",
many: "дней"
},
hour: {
one: "час",
few: "часа",
many: "часов"
},
minute: {
one: "минута",
few: "минуты",
many: "минут"
},
second: {
one: "секунда",
few: "секунды",
many: "секунд"
}
}
}
// Define rules
$.timeDurationPicker.i18n.pluralRules.ru_RU = function( count ) {
count = parseInt( count, 10 );
var m10 = count % 10;
var m100 = count % 100;
if ( m10 === 1 && m100 !== 11 ) {
return "one";
} else if ( ( m10 >= 2 && m10 <= 4 ) && ( m100 < 12 || m100 > 14 ) ) {
return "few";
} else if ( m10 === 0 || ( m10 >= 5 && m10 <= 9 ) || ( m100 >= 11 && m100 <= 14 ) ) {
return "many";
} else {
return "other";
}
}