parse_time_duration
v1.0.0
Published
Parse duration from human input
Maintainers
Readme
What is it?
Package for parsing duration based on human input.
Parsed value will be return as an object, which contains milliseconds, seconds, minutes and hours.
If input invalid, the null will be returned.
Installation
Run
npm install parse_time_duration
or
yarn add parse_time_duration
or
pnpm install parse_time_duration
Use
import parseDuration from 'parse_time_duration';
const [inputValue, setInputValue] = useState('');
const { milliseconds, seconds, minutes, hours } = parseDuration(inputValue);// Example with default localization (en-GB)
console.log(parseDuration('1 hour 30 minutes')); // en-GB default
Output will be:
{
milliseconds: 5400000;
seconds: 5400;
minutes: 90;
hours: 1.5;
}
console.log(parseDuration('1hour 30minutes')); // en-GB compact
Output will be:
{
milliseconds: 5400000;
seconds: 5400;
minutes: 90;
hours: 1.5;
}
console.log(parseDuration('1h 30min')); // en-GB short
Output will be:
{
milliseconds: 5400000;
seconds: 5400;
minutes: 90;
hours: 1.5;
}
console.log(parseDuration('30min')); // en-GB compact
Output will be:
{
milliseconds: 1800000
seconds: 1800
minutes: 30
hours: null
}
// Example German localization
const deUnits = {
minutes: ['minute', 'minuten', 'min'],
hours: ['stunde', 'stunden', 'std', 'h'],
};
console.log(parseDuration('0,5stunde', deUnits)); // German compact
Output will be:
{
milliseconds: 1800000
seconds: 1800
minutes: 30
hours: null
}
console.log(parseDuration('1std 30minuten', deUnits)); // German short
Output will be:
{
milliseconds: 5400000
seconds: 5400
minutes: 90
hours: 1.5
}
// Some examples with empty string or incorrect input values
console.log(parseDuration(''));
Output will be:
{
milliseconds: null
seconds: null
minutes: null
hours: null
}
console.log(parseDuration('1'));
Output will be:
{
milliseconds: null
seconds: null
minutes: null
hours: null
}
console.log(parseDuration('1 30min'));
Output will be:
{
milliseconds: null
seconds: null
minutes: null
hours: null
}
console.log(parseDuration('1h 45'));
Output will be:
{
milliseconds: null
seconds: null
minutes: null
hours: null
}Parameters
The function accepts two parameters, string with value from input to parse and localeUnits, where the others languages can be defined.
Some examples
const deUnits = {
minutes: ['minute', 'minuten', 'min'],
hours: ['stunde', 'stunden', 'std', 'h'],
};
const { milliseconds, seconds, minutes, hours } = parseDuration('1std 30minuten', deUnits);
const plUnits = {
minutes: ['min', 'minuta', 'minuty', 'minut'],
hours: ['h', 'godz', 'godzina', 'godziny', 'godzin'],
};
const { milliseconds, seconds, minutes, hours } = parseDuration('1h 30min', plUnits);
const uaUnits = {
minutes: ['хв', 'хвилина', 'хвилини', 'хвилин'],
hours: ['год', 'година', 'години', 'годин'],
};
const { milliseconds, seconds, minutes, hours } = parseDuration('1год 30хв', uaUnits);