我怎样才能将字符串转换为只有几天?
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; }
如何将“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; }