我有一个数组,我想从一个给定的范围内获取最老和最新的日期。
DatosFechas = ["2020-04-29", "2020-04-19", "2020-04-07", "2020-04-30", "2020-04-30", "2018-01-22"]
我想从一个给定的范围内获取最老或最新的日期。
Ths函数,试图获得工作。
function ObtenerMaxMinRangoFechas(DatosFechas) {
let moments = DatosFechas.map(x => moment(x)),
maxDate = moment.max(moments)
return maxDate
}
谢谢
我的日期数组比较长,只是为了这个帖子的目的,它被缩小了。
这就是错误。
没有给我最大日期。
返回的 maxDate
变量实际上是一个 Moment
对象。你可以简单地对它进行格式化,以获得所需的结果,比如。
const DatosFechas = ["2020-04-29", "2020-04-19", "2020-04-07", "2020-04-30", "2020-04-30", "2018-01-22"]
function ObtenerMaxMinRangoFechas(DatosFechas) {
let moments = DatosFechas.map(x => moment(x)),
maxDate = moment.max(moments)
return maxDate.format('YYYY-MM-DD')
}
console.log( ObtenerMaxMinRangoFechas(DatosFechas) )
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.25.1/moment.min.js"></script>
对日期数组进行排序,抓住最后一个。
DatosFechas = ["2020-04-29", "2020-04-19", "2020-04-07", "2020-04-30", "2020-04-30", "2018-01-22"]
const sortedDates = DatosFechas.sort((a, b) => moment(a) - moment(b));
console.log('NEWEST Date',sortedDates[sortedDates.length-1])
console.log('OLDEST Date',sortedDates[0])
注意:你并不真的需要 moment
对于你的情况。你可以使用js内置的 Date
功能。见 此处
你做得很好,你做得很对。只是问题是,你必须形成你的回报率 moment
对象,而不是将其作为对象返回。
使用it-
function ObtenerMaxMinRangoFechas(DatosFechas) {
const moments = DatosFechas.map(x => moment(x));
const maxDate = moment.max(moments);
return maxDate.format('YYYY-MM-DD');
}
你想以什么格式返回首尾日期?这里有一个例子,是一个首尾字符串的数组。
let dates = ["2020-04-29", "2020-04-19", "2020-04-07", "2020-04-30", "2020-04-30", "2018-01-22"]
const getFirstAndLastDate = (dates) => {
dates = dates.sort()
return [dates[0], dates[dates.length - 1]]
}
console.log(getFirstAndLastDate(dates))
Moment.max
似乎要返回一个 矩物 而非 绳子 为了得到字符串格式,你需要调用format并传递你想要的格式,就像这样。
moment.format('YYYY-MM-DD')
让我们把这个放在一起。
function ObtenerMaxMinRangoFechas(DatosFechas) {
let moments = DatosFechas.map(x => moment(x)),
maxDate = moment.max(moments).format('YYYY-MM-DD');
return maxDate
}