Fix time to int parsing

This commit is contained in:
Chocobozzz 2023-12-15 09:54:08 +01:00
parent edc695263f
commit ea685879bb
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 7 additions and 4 deletions

View File

@ -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
} }

View File

@ -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)
}) })
}) })