gpt4 book ai didi

javascript - 将字符串日期格式化为始终遵循 yyyy-mm-dd 格式(非纪元)

转载 作者:行者123 更新时间:2023-11-28 03:37:11 26 4
gpt4 key购买 nike

我有 3 个不同的客户端(Android、iOS 和 Web),它们都访问同一端点来解析需要存储为 yyyy-mm-dd 的日期字符串。 Android 和 iOS 日期选择器似乎都在解析正确的格式,但排除了单位数字中月份和日期的零,即 2019-8-9 而不是 2019-08-09。

Moment.js 似乎没有解决这个问题的方法。我想要一个可以在 vanilla js 中处理服务器端的解决方案,以便不需要对解析数据的 Android 和 iOS 应用程序功能进行更新。

这是我当前的解决方案。正常工作。很想知道是否有人能提出更干净/更精简的解决方案。

function checkDateFormat(date){
return new Promise (resolve=>{
if(date.length == 8){
// Both month and day are single digits and should be fixed
var firstFix = date.substr(0, 5) + "0" + date.substr(5);
var secondFix = firstFix .substr(0, 8) + "0" + firstFix.substr(8);
resolve(secondFix);
} else if (date.length == 9){
if(date.substr(6,1) == "-"){
// Month is single digit and should be fixed
var monthFix = date.substr(0, 5) + "0" + date.substr(5);
resolve(monthFix);
} else {
// Day is single digit and should be fixed
var dayFix = date.substr(0, 8) + "0" + date.substr(8);
resolve(dayFix);
}
} else {
resolve(date);
}
});
}

应将字符串一致解析为 yyyy-mm-dd,而不是 yyyy-m-dd 或 yyyy-mm-d

最佳答案

简单的正则表达式替换就足够了:

console.log( '2000-1-2'.replace(/\b\d\b/g, '0$&') )

关于javascript - 将字符串日期格式化为始终遵循 yyyy-mm-dd 格式(非纪元),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57599629/

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