将'mm-dd-yyyy'字符串日期转换为'yyyy-mm-dd' JavaScript



我正在从 API 获取这些格式之一的日期"mm-dd-yyyy""mm/dd/yyyy"这些也在字符串中,我想将它们从字符串解析为 js 日期对象

因此,当我执行new Date('12/07/2021')new Date('12-07-2021')时,我得到了前一天2021-12-06T18:30:00:000Z的输出日期。

但是,如果我new Date('2021-12-07')这样的格式yyyy-mm-dd传递日期,那么我会得到正确的日期作为输出2021-12-07T00:00:00.000Z我在 node js 的后端遇到这个问题。

根据我的说法,可能的解决方案是将字符串从mm-dd-yyyy转换为yyyy-mm-dd格式。但是我该怎么做呢?

注意:我不能使用时刻js,因为这是一个新项目,并且由于时刻js折旧

有 setDay、setMonth、setYear 的 UTC 变体,应该做你所追求的事情。

例如。

function mdyToDate(date) {
const s = date.split(/[/-]/);
const [m, d, y] = s.map(v => parseInt(v));
const ret = new Date('2000-01-01');
ret.setUTCFullYear(y);
ret.setUTCMonth(m-1); //months are 0 based
ret.setUTCDate(d);
return ret;
}
console.log(mdyToDate('12/07/2021'));
console.log(mdyToDate('12-07-2021'));
console.log(mdyToDate('12/7-2021'));

相关内容

最新更新