我想知道如何在 javascript 中對包含不同順序的逗號分隔值的日期進行排序,例如
var dates = "6/11/2015, 6/1/2015, 6/22/2015, 6/7/2015, 5/11/2015";
我想按最新日期排序日期,例如 var date2 = "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/qianduan/338351.html
標籤:javascript 日期
