如何将这些字符串转换为日期格式并进行相应排序....请
2010-11-08 18:58:50.0_getCreated_10180
2010-11-09 17:49:42.0_getCreated_10180
2010-11-09 17:49:42.0_getCreated_10180
2010-11-24 19:44:51.0_getCreated_10180
2010-11-09 13:54:46.0_getCreated_10180
2010-11-23 20:06:29.0_getCreated_10180
2010-11-23 20:06:04.0_getCreated_10180
2010-11-15 17:51:37.0_getCreated_10180
提前致谢, 约瑟夫
答案 0 :(得分:7)
如果你有一个字符串,那么就做。
// first create an array by splitting the string at the newlines
var list = dateString.split('\n');
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
return new Date(val.split('.')[0].replace(/-/g,' '));
})
.sort(); // at the end sort the results.
示例http://www.jsfiddle.net/gaby/rfGv8/
我们需要为每个日期(行)做什么
2010-11-08 18:58:50 .0_getCreated_10180 (删除。之后的部分)
用val.split('.')[0]
然后用空格替换 - 使其看起来像2010 11 08 18:58:50
,这是Date
构造函数可接受的日期格式。
用val.split('.')[0].replace(/-/g,' ')
然后将其作为参数传递给Date的构造函数以创建Date对象
用new Date(val.split('.')[0].replace(/-/g,' '))
将上述内容应用于所有元素并获取新数组后,使用.sort()
方法按升序排序数组。
答案 1 :(得分:0)
请提供以下代码。 getDateSort函数返回排序日期
<script language="javascript" type="text/javascript">
function getDateSort() {
dateArray = new Array('2010-11-08 18:58:50', '2010-11-09 17:49:42',
'2010-11-09 17:49:42', '2010-11-15 17:51:37', '2010-11-23 20:06:04', '2010-11-09 13:54:46', '2010-11-23 20:06:29', '2010-11-24 19:44:51');
dateArray.sort(dmyOrdA);
alert('Ascending : ' + dateArray + '');
return false;
}
var dateRE = /^(\d{2})[\/\- ](\d{2})[\/\- ](\d{4})/;
function dmyOrdA(a, b) {
a = a.replace(dateRE, "$3$2$1");
b = b.replace(dateRE, "$3$2$1");
if (a > b) return 1;
if (a < b) return -1;
return 0;
}
function dmyOrdD(a, b) {
a = a.replace(dateRE, "$3$2$1");
b = b.replace(dateRE, "$3$2$1");
if (a > b) return -1;
if (a < b) return 1;
return 0;
}
function mdyOrdA(a, b) {
a = a.replace(dateRE, "$3$1$2");
b = b.replace(dateRE, "$3$1$2");
if (a > b) return 1;
if (a < b) return -1;
return 0;
}
function mdyOrdD(a, b) {
a = a.replace(dateRE, "$3$1$2");
b = b.replace(dateRE, "$3$1$2");
if (a > b) return -1;
if (a < b) return 1;
return 0;
}
</script>