我想知道如何在包含逗號分隔值的 javascript 中以不同順序對日期進行排序,例如
var dates = "6/11/2015, 6/1/2015, 6/22/2015, 6/7/2015, 5/11/2015";
我想按最新日期排序日期,例如,
var dates2 = "5/11/2015, 6/1/2015, 6/7/2015, 6/11/2015, 6/22/2015";
您的幫助將不勝感激。謝謝
uj5u.com熱心網友回復:
您可以拆分字串以獲取陣列,通過將每個字串傳遞給Date建構式來對它們進行排序,然后將其重新連接在一起。
let dates = "6/11/2015, 6/1/2015, 6/22/2015, 6/7/2015, 5/11/2015";
let res = dates.split(", ").sort((a,b)=>new Date(a) - new Date(b)).join(", ");
console.log(res);
uj5u.com熱心網友回復:
我認為,這可以通過split()提取每天、每月、每年輕松完成,然后使用這些值來構造 Dates 物件。最后,您對這些日期進行比較和排序。
const splitDatesByComma = dates.split(',').map((el) => el.trim())
const dates = splitDatesByComma.map((el) => {
const splitDate = el.split('/')
// Create a Date for splitted string. Month is 0 based
return new Date(splitDate[2], splitDate[1] - 1, splitDate[0], 0, 0, 0, 0)
})
const sortDatesDescending = dates.sort((dateA, dateB) => {
if (dateA > dateB) {
return -1
}
if (dateA < dateB) {
return 1
}
return 0
})
// Format sorted dates to string and join them.
const datesFormattedAndSorted = sortDatesDescending.map((date) => {
return `${date.getDate()}/${date.getMonth() 1}/${date.getFullYear()}`
})
console.log(datesFormattedAndSorted.join(', '))
如果有人感興趣,我已經在 CodePen 上用 Vue 完成了這個:https ://codepen.io/LucasFer/pen/mdMmqrN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/340979.html
標籤:javascript 日期
上一篇:基于R中的多個變數創建人口普查表
