如何从日期格式中获取日期?

3

我从API获取的日期格式为6-21-2021,我该如何提取出它的天数? 我已经创建了一个星期几的数组。

let days: string[] = [
  "Sunday",
  "Monday",
  "Tuesday",
  "Wednesday",
  "Thursday",
  "Friday",
  "Saturday",
];

有没有解决方法可以获取日期?


1
使用date-fns,它们有一些辅助函数。https://date-fns.org/v2.22.1/docs/getDate - Rajendran Nadar
应该这样做的是解析字符串,避免使用内置解析器,并使用内置函数,如Intl.DateTimeFormat#formatDate#toLocaleString,并使用适当的选项,例如let [m,d,y] = '6-21-2021'.split(/\D/); new Date(y,m-1,d).toLocaleString('default',{weekday:'long'}) - RobG
2个回答

0
你可以使用 Date#getDay

const days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];

const parseDate = str => {
  const parts = str.split('-');
  return new Date(parts[2], parts[0]-1, parts[1]);
}

const date = parseDate("6-21-2021");
const day = days[date.getDay()];

console.log(day);


2
使用内置解析器解析不支持的格式是实现相关的,强烈不建议这样做。请参见为什么Date.parse会给出错误的结果? 在Safari中上述代码返回undefined - RobG
我曾经遇到过这个问题,那是一场漫长的挣扎,但至少做完了。首先,我分离了我的日期并创建了一个新数组,在索引的帮助下我将它们在新数组中替换位置,并将逗号改为“-”。 - callmenikk

0

Also, you can use localized week day name:

const date = new Date('6-21-2001')
const dayName = date.toLocaleString(window.navigator.language, { weekday: 'long' })
console.log({ dayName })


我得到了 {"dayName": "无效的日期"},请参考 为什么 Date.parse 会给出错误的结果? - RobG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接