javascript - 如果在 Javascript 中指定小数时间,如何计算最接近的整数时间单位
问题描述
例如,如果用户输入像“2.5 小时”或“65.2 分钟”这样的文本,我想编写一个算法或一段代码来建议 2.5 小时,比如 150 分钟或 150 * 60 秒,依此类推.
解决方案
这里是一个通用函数,可以转换为其他时间单位,默认为秒
function convertTo(input, to='seconds'){
const conversionToSeconds = {'seconds':1,'minutes': 60, 'hours': 60*60}
const [timeValue, timeUnit] = input.trim().split(/ +/);
const timeInSeconds = timeValue * conversionToSeconds[timeUnit];
return timeInSeconds/conversionToSeconds[to]
}
例子:
> convertTo('2.5 hours')
9000
> convertTo('2.5 hours', 'minutes')
150
它通过在一个或多个空格上修剪和拆分字符串来工作(“3小时”也可以)。
然后该数字乘以系数时通过强制转换自动转换为数字。
它首先将数字转换为秒,然后转换为所需的单位,使用相同的转换图(对此非常兴奋)
可以做得更好的事情:
- 已经在正确的单位中时不要转换
- 一步转换组合系数
推荐阅读
- eclipse - 在 Maven 目标和 Maven 存储库中找到 Liquibase 资源
- google-bigquery - 为什么 BigQuery 有自己的存储空间?
- c# - Hangfire 事务处理(工作单元)
- css - Rails 5:带有选择类的 form_for 选择字段标签
- facebook - 为什么 facebook 不允许我创建更多应用程序?
- c# - 禁用/启用 ProcessCmdKey
- nativescript - 本机脚本 + 角。状态栏下的内容
- c# - C# DateTime 字段未格式化
- c# - 屏幕上的边界框正确,但是当我使用相同的矩形获得 Texture2d 时向上移动
- c++ - 引用类型返回函数:如何返回(可选)对象