gpt4 book ai didi

JavaScript 日期格式显示错误

转载 作者:行者123 更新时间:2023-12-02 21:16:15 24 4
gpt4 key购买 nike

我有一个 API,它提供日期格式,如 01/04/2020 00:17:26我们使用下面的 JavaScript 代码:

function getLocalTime(timestamp){
try {
let localTime = new Date(timestamp.replace('at ','') + ' GMT+530');
return localTime;
} catch(e){
return timestamp;
}
}

vat date = getLocalTime('01/04/2020 00:17:26');
console.log(date);

上面的代码返回 Sat Jan 04 2020 00:17:26 GMT+0530 (India Standard Time)但预期结果会像 Wed Apr 01 2020 00:17:26 GMT+0530 (India Standard Time)

请帮助我们解决这个问题。

最佳答案

问题是您使用的日期格式错误。

您的格式:DD/MM/YYYY

预期格式:MM/DD/YYYY

不过,如果您期望的输入格式(来自用户)是 DD/MM/YYYY (例如 01/04/2020 00:17:26) ,然后您可以使用正则表达式来提取日期信息,如下所示

function getLocalTime(timestamp){
try {
const datePart = timestamp.match(/^(\d{2})\/(\d{2})\/(\d{4})/);
const day = datePart[1];
// month goes from 0 to 11
const month = datePart[2] - 1;
const year = datePart[3];

const localTime = new Date(timestamp.replace('at ','') + ' GMT+0530');
localTime.setFullYear(year);
localTime.setMonth(month);
localTime.setDate(day);

return localTime;
} catch(e){
return timestamp;
}
}

const date = getLocalTime('01/04/2020 00:17:26');
console.log(date);

更新

@RobG 提出了一个很棒的解决方案(请参阅下面的评论)。

function getLocalTime(timestamp) {
try {
const matches = timestamp.split(/\D+/); // or use timestamp.match(/\d+/g)
return new Date(Date.UTC(matches[2], matches[1]-1, matches[0], matches[3]-5, matches[4]-30, matches[5]));
} catch(e){
return timestamp;
}
}

const date = getLocalTime('01/04/2020 00:17:26');
console.log(date);

关于JavaScript 日期格式显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60962630/

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