【发布时间】:2015-07-21 07:32:46
【问题描述】:
我有这种刺痛:
12/07/2015|评论1,11/09/2015|评论2,31/07/2015|评论3,30/07/2015|评论4, 2015 年 7 月 16 日|评论 5,09/07/2015|评论 6,”
我正在努力实现这个结果:
09/07/2015|评论 6,12/07/2015|评论 1,16/07/2015|评论 5,30/07/2015|评论 4,31/07/2015|评论 3,11/09/2015|评论 2 ,
到目前为止,我的代码如下所示:
function rearangeDates(old_order){
var list = old_order.split(',');
list = list
.map( // for each element in the list (each date)
function(val,idx){
// use the first part(before the dot(.)), replace the - with spaces and convert to date
console.log(val.split('|')[0].split("/").join("-"))
return new Date(val.split('|')[0].split("/").join("-").replace( /(\d{2})-(\d{2})-(\d{4})/, "$2/$1/$3") );
})
.sort(); // at the end sort the results.
console.log(list)
}
我的主要目标是安排日期,但此功能会导致:
[ 2015 年 7 月 31 日星期五 00:00:00 GMT+0300(FLE 夏令时间), 2015 年 9 月 11 日星期五 00:00:00 GMT+0300(FLE 夏令时间)->这应该在数组的末尾,因为 9 月在 7 月之后,无效日期, 2015 年 7 月 12 日星期日 00:00:00 GMT+0300(FLE 夏令时), 2015 年 7 月 9 日星期四 00:00:00 GMT+0300(FLE 夏令时间),7 月 16 日星期四 2015 00:00:00 GMT+0300(FLE 夏令时间),2015 年 7 月 30 日星期四 00:00:00 GMT+0300(FLE 夏令时)]
【问题讨论】:
-
@Yetti99:
split也可以将字符串作为参数。
标签: javascript sorting date