【问题标题】:convert 'mm-dd-yyyy' string date into 'yyyy-mm-dd' javascript [duplicate]将'mm-dd-yyyy'字符串日期转换为'yyyy-mm-dd'javascript [重复]
【发布时间】:2021-12-07 16:04:47
【问题描述】:

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

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

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

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

注意::我不能使用 moment js,因为这是一个新项目,并且由于 moment js 贬值

【问题讨论】:

  • 呃。好奇的。您当地的时区是多少?
  • “由于 moment js 贬值” - momentjs 尚未被弃用。他们还在他们的网站上提到了多种选择...

标签: javascript date datetime-format date-formatting


【解决方案1】:

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'));

【讨论】:

    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    相关资源
    最近更新 更多