使用javascript

时间:2017-10-17 16:16:55

标签: javascript regex time timestamp human-readable

我正在使用clockpicker来收集用户输入,这将为我提供字符串中的数字时间戳。

例如:

02:15

我想保留在数据库中,但在我的视图中将其打印为,使用此示例:

2h 15m 

不必要的零点被移除,间隔并且“h”为“小时”而“m”为“分钟”。此外,如果没有指定小时,我宁愿只得到分钟,反之亦然,如果没有指定分钟。

我似乎发现的所有示例都是关于在JavaScript中使用“日期”功能转换完整的时间戳。我似乎无法使用这个值,而且我对正则表达式很糟糕。

我想找到一种优雅的方式,也许是在渲染我的视图之前替换它的一行正则表达式。我不想使用任何其他库。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分: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