Fix time to int parsing
This commit is contained in:
parent
edc695263f
commit
ea685879bb
|
@ -52,13 +52,13 @@ function timeToInt (time: number | string) {
|
||||||
if (typeof time === 'number') return time
|
if (typeof time === 'number') return time
|
||||||
|
|
||||||
// Try with 00h00m00s format first
|
// Try with 00h00m00s format first
|
||||||
const reg = new RegExp(`^(\\d+h)?(\\d+m)?(\\d+)s?$`)
|
const reg = new RegExp(`^((?<hours>\\d+)h)?((?<minutes>\\d+)m)?((?<seconds>\\d+)s?)?$`)
|
||||||
const matches = time.match(reg)
|
const matches = time.match(reg)
|
||||||
|
|
||||||
if (matches) {
|
if (matches) {
|
||||||
const hours = parseInt(matches[1] || '0', 10)
|
const hours = parseInt(matches.groups['hours'] || '0', 10)
|
||||||
const minutes = parseInt(matches[2] || '0', 10)
|
const minutes = parseInt(matches.groups['minutes'] || '0', 10)
|
||||||
const seconds = parseInt(matches[3] || '0', 10)
|
const seconds = parseInt(matches.groups['seconds'] || '0', 10)
|
||||||
|
|
||||||
return hours * 3600 + minutes * 60 + seconds
|
return hours * 3600 + minutes * 60 + seconds
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,6 +78,9 @@ describe('Time to int', function () {
|
||||||
expect(timeToInt('02h02m03s')).to.equal(7323)
|
expect(timeToInt('02h02m03s')).to.equal(7323)
|
||||||
expect(timeToInt('2:02:3')).to.equal(7323)
|
expect(timeToInt('2:02:3')).to.equal(7323)
|
||||||
|
|
||||||
|
expect(timeToInt('5h10m')).to.equal(5 * 3600 + 60 * 10)
|
||||||
|
expect(timeToInt('5h10m0s')).to.equal(5 * 3600 + 60 * 10)
|
||||||
|
|
||||||
expect(timeToInt(3500)).to.equal(3500)
|
expect(timeToInt(3500)).to.equal(3500)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue