我正在尝试使用 date-fns 版本 1.30.1 或纯 JavaScript 创建一个接受数字并返回时间戳 (HH:mm) 的函数。
我想要实现的是在输入时间时帮助用户。当用户离开输入字段时,我使用 Vue.js 更新该字段。因此,如果用户输入 21 然后离开,则该字段理想情况下会更新为 21:00。
一些例子是:
21 = 21:00
1 = 01:00
24 = 00:00
2115 = 21:15
像 815 这样的数字不必返回 08:15。像 7889 这样的数字应该返回错误。
我尝试过使用正则表达式:
time = time
.replace(/^([1-9])$/, '0$1')
.replace(/^([0-9]{2})([0-9]+)$/, '$1:$2')
.replace(/^24/, '00:00')
我也尝试过在 date-fns 中使用 parse 方法,但似乎不知道如何解决这个问题。
版本 1,将小于 100 的任何内容转换为小时
const num2time = num => {
if (num < 100) num *=100;
const [_,hh,mm] = num.toString().match(/(\d{1,2})(\d{2})$/)
return `${hh.padStart(2,"0")}:${mm}`
}
console.log(num2time(8));
console.log(num2time(2115));
console.log(num2time(15));
console.log(num2time("8"));
console.log(num2time("2115"));
如果数字始终代表有效 (h)hmm,则可以使用版本 2
const num2time = num => num.toString().replace(/(\d{1,2})(\d{2})$/,"$1:$2");
console.log(num2time(815));
console.log(num2time(2115));
console.log(num2time("2115"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)