gpt4 book ai didi

javascript - 在 JavaScript 中将倒计时日期格式转换为毫秒

转载 作者:行者123 更新时间:2023-11-28 17:25:42 24 4
gpt4 key购买 nike

我必须将这种类似倒计时的Date 格式0d0h0m0s 转换为毫秒。该格式可以选择包含 0d0h0m 标题值,因此允许的值为

1d23h10m
0d12h0m
12h0m
0m0s
0m10s
10s

虽然至少需要一个尾随 0s 格式值,但 0 值对于每种 dhm 格式都是可选的,因此 0m5s5s 都是允许的值。

因为该函数每秒将应用 N 次。 (N在10到100之间),每个函数执行时间都有一个性能约束。

注意。可以使用简单的 Regex 模式将 /[dhms]/gi 等字符串拆分为 dayhour 的日期组件分钟,但我一直在寻找一种日期格式安全的方法。

最佳答案

一种选择是使用正则表达式提取所有匹配项,然后根据需要进行乘法和求和:

const re = /(?:(\d+)y)?(?:(\d+)m)?(?:(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?/;
const toSeconds = input => {
const [, years, months, days, hours, minutes, seconds] = input.match(re);
// console.log({years, months, days, hours, minutes, seconds})
const totalDays = ((years || 0) * 365)
+ ((months || 0) * 30)
+ (days || 0);
const totalSeconds = totalDays * 24 * 3600
+ ((hours || 0)*3600)
+ ((minutes || 0) * 60)
+ (seconds || 0)
return totalSeconds * 1000;
};
`1d23h10m
0d12h0m
12h0m
0m0s
0m10s
10s`.split('\n').forEach(str => console.log(toSeconds(str)));

当然,如果您想要不同的计算(例如每年 365.25 天,或类似的东西),这样的调整将非常容易实现。

关于javascript - 在 JavaScript 中将倒计时日期格式转换为毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51670195/

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