将自定义字符串转换为 Angular 日期
Convert custom string into Angular Date
我有一个像“2020 年 8 月 24 日”这样的字符串,我需要将其转换为 Angular 中的“日期”类型。请问有什么简单的方法可以做到吗?
我试过这个:
const deadline = new Date ("August 24th, 2020")
但这会导致“无效日期”。
也许 moment.js 能够开箱即用地解析它,但是,如果您不愿意仅出于此目的附加外部库并保持其与环境其余部分的兼容性,您可能自己解析:
const dateStr = "August 24th, 2020",
parseDate = s => {
const [, month, dd, yyyy] = s.match(/([a-z]+)\s(\d+)[a-z]+,\s(\d+)/i)||[],
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
return new Date(Date.UTC(yyyy, months.indexOf(month), dd))
}
console.log(parseDate(dateStr))
我有一个像“2020 年 8 月 24 日”这样的字符串,我需要将其转换为 Angular 中的“日期”类型。请问有什么简单的方法可以做到吗?
我试过这个:
const deadline = new Date ("August 24th, 2020")
但这会导致“无效日期”。
也许 moment.js 能够开箱即用地解析它,但是,如果您不愿意仅出于此目的附加外部库并保持其与环境其余部分的兼容性,您可能自己解析:
const dateStr = "August 24th, 2020",
parseDate = s => {
const [, month, dd, yyyy] = s.match(/([a-z]+)\s(\d+)[a-z]+,\s(\d+)/i)||[],
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
return new Date(Date.UTC(yyyy, months.indexOf(month), dd))
}
console.log(parseDate(dateStr))