在不同时间单位之间转换人string时间

你知道一个NPM模块能够将人string时间转换为天,小时,秒或毫秒,最好使用moment.js时间单位吗?

这有点难以解释,所以这里有一些例子:

“1小时”到分钟= 60
“2天”到秒= 172800
“60秒”到分钟= 1
“30分钟”到秒= 1800

和上面一样使用空格:
“1小时”到分钟= 60
'2d'到秒= 172800
'60s'到minutes = 1
“30米”到秒= 1800

这些是由moment.js使用的string单位

Key Shorthand ---------------------- years y quarters Q months M weeks w days d hours h minutes m seconds s milliseconds ms 

或者expression为一个function:

 const convertUnits = (input, format) => { // Implementation }; convertUnits('1hours', 'minutes') // 60 convertUnits('1h', 'm') // 60 

还是有可能只是使用这一点呢? 请记住,我不关心实际的date或时间 – 我只想将单位转换与人类可读的单位混合在一起。

提前致谢。

我结束了使用下面:

 import * as _ from 'lodash' import moment from 'moment' import momentDurationFormat from 'moment-duration-format' export const convertTime = (time, format = 's') => { if(!_.isString(time) || !_.isString(format)){ return 0; } const components = time.trim().split(/(\d+)/); const digits = parseInt(components[1]); const unit = components[2]; return moment .duration(digits, unit) .format(format); }; 

尝试使用时间string库。 它将人类可读的时间stringparsing为基于时间的值(默认情况下以秒为单位)。 正如我所看到的,它可以满足您的所有需求:

 const timestring = require('timestring') let str = '1d 3h 25m 18s' let time = timestring(str) console.log(time) // will log 98718 

strinput参数可以不带空格,例如'1d3h25m18s'