gpt4 book ai didi

javascript - 在服务器上获取 "१:१३:१२"类型的持续时间。有什么办法可以将其更改为 "01:13:12"吗?

转载 作者:搜寻专家 更新时间:2023-11-01 00:48:27 24 4
gpt4 key购买 nike

我收到请求时格式错误的持续时间(即 १:१३:१२)。当我尝试插入 Postgres 数据库时,它显示了预期的 DateTimeParseError

我们可以在实际持续时间格式中更改这种(१:१३:१२)类型的持续时间吗(01:13:12) HH:MM:SS on服务器端?

最佳答案

是的,这是可能的。

方法 1 - 简短的脏修复 - 计算数字字符集和拉丁数字字符集之间的差异并替换它们。然后只需填充缺失的“0”
请参阅下面的代码(它适用于您的示例,但我不对输入字符串进行任何验证,这取决于您)

var str = "१:१३:१२";

var offset = "१".charCodeAt(0) - "1".charCodeAt(0);

// replace everything but ":"
var result = str.replace(/[^:]/g, function(el){
return String.fromCharCode(el.charCodeAt(0) - offset);
})

console.log(result);

result = result.split(":").map(el=>el.length === 2? el: "0" + el).join(":");
console.log(result);

方法 2 - 推荐 - 在创建持续时间字符串时使用语言环境,例如:如果您有权访问持续时间的 Data 对象,则可以使用 Intl.DateTimeFormat并获取带有拉丁编号系统的字符串:区域设置字符串中的 "nu-latin" 部分。
注意:如果你使用一些库来创建持续时间,那么可能有一些方法可以设置语言环境

var date = new Date()

logLocaleDate("en-u-nu-deva-hc-h24")
logLocaleDate("en-u-nu-latin-hc-h24")

function logLocaleDate(locale){
var res = (new Intl.DateTimeFormat(locale, {hour: "2-digit", minute: "2-digit", second:"2-digit"}).format(date))

console.log(res);
}

关于javascript - 在服务器上获取 "१:१३:१२"类型的持续时间。有什么办法可以将其更改为 "01:13:12"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55488929/

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