排序JS数组按日期DD/MM/YY格式
Sorting JS array by dates DD/MM/YY format
我有这种类型的字符串:
12/07/2015 | Comment1, 11/09/2015 | Comment2, 31/07/2015 | Comment3, 30/07/2015 | Comment4,16/07/2015 | Comment5, 09/07/2015 | Comment6。"
我正在努力达到这个结果:
09/07/2015 | Comment6, 12/07/2015 | Comment1, 16/07/2015 | Comment5, 30/07/2015 | Comment4, 31/07/2015 | Comment3, 11/09/2015 | Comment2,
到目前为止,我的代码是这样的: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)
}
我的主要目标是安排日期,但这个函数导致:
[星期五7月31日2015 00:00:00 GMT+0300 (FLE日光时间),星期五Sep 11 2015 00:00:00 GMT+0300 (FLE夏令时)->这应该在数组的末尾,因为Sep在Jul之后,无效日期,Sun ju7 12 2015 00:00:00 GMT+0300 (FLE夏令时),2015年7月9日星期四00:00:00 GMT+0300 (FLE日光时间),7月16日星期四2015年7月30日星期四2015年00:00:00 GMT+0300(法国夏令时GMT+0300 (le Daylight Time)]
你需要传递一个比较函数给你的sort
:
.sort(function(a, b){
return a.getTime() - b.getTime();
})
这样可以把你的日期按正确的顺序排列。
sort
将根据该函数的返回值对传递的2个值排序:
- 当
compareFunction(a, b)
<0时,将a排序到比b低的索引,即a优先。- 如果
compareFunction(a, b)
返回0,则保持a和b相对于彼此不变,但相对于所有不同的元素排序。注意:ECMAscript标准并不能保证这种行为,因此并不是所有的浏览器(例如至少追溯到2003年的Mozilla版本)都尊重这一点。- 如果
compareFunction(a, b)
大于0,将b排序到比a低的索引。compareFunction(a, b)
在给定特定的一对元素a和b作为其两个参数时必须始终返回相同的值。如果返回的结果不一致,则排序顺序未定义
相关文章:
- 如何在javascript中验证MM/YY的日期
- 使用Javascript将MySQL日期格式转换为DD/MM/YY日期格式
- 我需要用age Javascript验证dd/mm/yy格式(闰年)的dob
- Javascript 正则表达式日期格式 dd/mm/yy
- Javascript+HTML中的日期选择器准备好了吗?(需要:DD、MM、YY的单独字段加上日历选择器)
- 我想在日期中添加月份,并采用mm/dd/yy格式
- 如何在附有日期选择器的文本框中设置默认日期(以这种格式“dd/mm/yy”)
- 如何使用我的 jQuery 日期选择器脚本添加 dd-mm-yy 的日期格式
- 在 jquery 中格式化日期,格式为“dd.mm.yy”
- 将 dd-mm-yy 转换为 JavaScript 日期对象
- 如何在 javascript 中以 dd/mm/yy 格式格式化 json 日期
- 如何使用JavaScript将日期显示为DD/MM/YY格式
- 从hh:mm:yy(24小时)到扩展时间形式的时间转换
- JavaScript 如何以 dd-mm-yy 格式获取明天的日期
- 如何使用javascript验证信用卡过期日期(mm-yy,必须不过期比当前月份和年)
- React Native:如何在Javascript中格式化mm/yy和间隔16位卡号的支付格式
- 将日期格式从dd-mm-yy更改为dd-mm-yy
- 排序JS数组按日期DD/MM/YY格式
- 如何使用javascript将日期转换为dd/mm/yy格式2011-08-13T10:38:27
- 在javascript中将日期字符串转换为dd/mm/yy