2017-10-17 59 views
0

我使用clockpicker收集用户输入,它会给我一个字符串中的数字时间戳。使用javascript的数字时间到可读的持续时间

例如:

02:15 

我想保留,由于是在数据库中,但在我看来,打印它,用这个例子:

2h 15m 

不必要零的删除,间隔和“小时”加“h”,“分钟”加“m”。此外,如果没有指定小时数,我宁愿只获取分钟数,反之亦然,如果没有指定分钟数。

我似乎找到的所有示例都是关于使用JavaScript中的“Date”函数转换完整的时间戳。我似乎无法使用这个值,而且我对正则表达式感到非常恐惧。

我想找到一个优雅的方式,也许是一条线的正则表达式来替换它之前呈现我的看法。我不想使用任何额外的库。

任何帮助表示赞赏!

回答

0

无论如何,我似乎已经管理。 它不像我想要的那么漂亮,但它起作用,它在技术上是一条一行正则表达式。

t = "00:05"; 
    t2 = "01:00"; 
    t3 = "12:10"; 
    t4 = "02:02"; 

    const replaceTime = (myString) => { 
    myString = myString.replace(/0?([1-9]{0,}[0-9]):0?([1-9]{0,}[0-9])/g, '$1h $2m').replace(/\s0m/g, '').replace(/0h\s/g, ''); 
    return myString; 
    } 

    console.log(replaceTime(t)); 
    console.log(replaceTime(t2)); 
    console.log(replaceTime(t3)); 
    console.log(replaceTime(t4)); 

回报:

5m 
1h 
12h 10m 
2h 2m