我怎样才能将字符串转换为只有几天?

How can i convert string to only days?

如何将“X 年 Y 月 Z 天”字符串转换为 Javascript 中的唯一天数? 例如:

var d="2 years 3 months 12 days";

我必须考832

您可以拆分字符串并转换

const date_str = "2 years 3 months 12 days"
const splitted_str=date_str.split(" ")
const years = parseInt(splitted_str[0])
const months = parseInt(splitted_str[2])
const days = parseInt(splitted_str[4])
const total_days=years*365+months*30+days
console.log(total_days+" days")

您可以使用 RegExp.exec(), along with Array.reduce() 来获得所需的输出。

我们定义我们考虑的时间间隔及其名称和权重,然后使用 .reduce() 对字符串中的总天数求和。

function getTotalDays(str) {
    let intervals = [ { name: 'year', weight: 365 }, { name: 'month', weight: 30 }, { name: 'day', weight: 1 }];
    return intervals.reduce((acc, { name, weight}) => { 
        let res = new RegExp(`(\d+)\s${name}[\s]?`).exec(str);
        return acc + (res ? res[1] * weight  : 0);
    }, 0);
}

console.log(getTotalDays("2 years 3 months 12 days"))
console.log(getTotalDays("6 months 20 days"))
console.log(getTotalDays("1 year 78 days"))
    
.as-console-wrapper { max-height: 100% !important; top: 0; }