gpt4 book ai didi

javascript - 如何将数字转换为时间?

转载 作者:行者123 更新时间:2023-11-30 06:11:41 24 4
gpt4 key购买 nike

我正在尝试使用 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"));

关于javascript - 如何将数字转换为时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58554311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com