JavaScript-按时间字符串排序

JavaScript-按时间字符串排序,javascript,sorting,time,format,comparator,Javascript,Sorting,Time,Format,Comparator,我不太擅长操纵字符串,需要一些帮助 我有一个函数,它接受2个div,得到一个段落,其中包含一个表示时间的字符串,格式如下: 2015年8月7日星期五下午18:21 或 2015年8月21日星期二上午10:45 作为两个例子。我想创建一个排序比较器函数,如果一个比另一个大,它将返回正确的数字,但我不确定如何提取数字可以是1或2位数长的天数,并且还考虑了确切的时间等 时间字符串是内部文本部分,我将其拆分为一个逗号,以便atime和btime是每个部分的数组 以下是我迄今为止所做的工作: // for

我不太擅长操纵字符串,需要一些帮助

我有一个函数,它接受2个div,得到一个段落,其中包含一个表示时间的字符串,格式如下:

2015年8月7日星期五下午18:21

2015年8月21日星期二上午10:45

作为两个例子。我想创建一个排序比较器函数,如果一个比另一个大,它将返回正确的数字,但我不确定如何提取数字可以是1或2位数长的天数,并且还考虑了确切的时间等

时间字符串是内部文本部分,我将其拆分为一个逗号,以便atime和btime是每个部分的数组

以下是我迄今为止所做的工作:

// format: Friday, 7 August 2015, 18:21 PM
// atime[0] --> Friday
// atime[1] -->  7 August 2015
// atime[2] -->  18:21 PM

function sortByTimeAdded(a, b) {
    var atime = (a.getElementsByClassName('timeAdded')[0].innerText).split(',');
    var btime = (b.getElementsByClassName('timeAdded')[0].innerText).split(',');

    /*if (atime[1] < btime[1]) {
        return -1;
    }
    if (atime[1] > btime[1]) {
        return 1;
    }*/
    return 0;
}
//格式:2015年8月7日星期五下午18:21
//时间[0]-->星期五
//atime[1]->2015年8月7日
//时间[2]->下午18:21
sortByTimeAdded函数(a,b){
var atime=(a.getElementsByClassName('timeAdded')[0].innerText.split(',');
var btime=(b.getElementsByClassName('timeAdded')[0].innerText.split(',');
/*如果(时间[1]btime[1]){
返回1;
}*/
返回0;
}

谢谢大家!

我建议使用Date.parse,我将在示例中显示:

var a = "Friday, 7 August 2015, 18:21 PM"
Date.parse(a.substring(0, a.length-3))
有了这个,你可以得到时间戳,你可以用来比较


如果需要date对象,只需将date.parse替换为date()

我建议使用date.parse,我将在示例中显示:

var a = "Friday, 7 August 2015, 18:21 PM"
Date.parse(a.substring(0, a.length-3))
有了这个,你可以得到时间戳,你可以用来比较


如果需要date对象,只需将date.parse替换为date()

我建议使用date.parse,我将在示例中显示:

var a = "Friday, 7 August 2015, 18:21 PM"
Date.parse(a.substring(0, a.length-3))
有了这个,你可以得到时间戳,你可以用来比较


如果需要date对象,只需将date.parse替换为date()

我建议使用date.parse,我将在示例中显示:

var a = "Friday, 7 August 2015, 18:21 PM"
Date.parse(a.substring(0, a.length-3))
有了这个,你可以得到时间戳,你可以用来比较




如果您需要date对象,只需将date.parse替换为date()

就可以了,这样您就可以按时间顺序对它们进行排序了吗?是的,我需要,只是不确定如何以及如何使其高效。
innerText
不是标准,Firefox不支持。最好使用
textContent
。谢谢!我不知道。我最好修改一下我的一些旧代码:SSo你想按时间顺序排序吗?是的,我想,只是不确定如何以及如何使其高效。
innerText
不是标准,Firefox不支持。最好使用
textContent
。谢谢!我不知道。我最好修改一下我的一些旧代码:SSo你想按时间顺序排序吗?是的,我想,只是不确定如何以及如何使其高效。
innerText
不是标准,Firefox不支持。最好使用
textContent
。谢谢!我不知道。我最好修改一下我的一些旧代码:SSo你想按时间顺序排序吗?是的,我想,只是不确定如何以及如何使其高效。
innerText
不是标准,Firefox不支持。最好使用
textContent
。谢谢!我不知道。我最好修改一下我的一些旧代码:这绝对有助于我开始工作。谢谢你的提示!或者,如果对日期字符串执行new Date(),则会得到一个漂亮的js日期对象。对其调用getTime(),您将获得unix毫秒数。用它来直接比较整数,这真是太完美了。我没有意识到它能将所有文本转换成数字,比我能做的任何事情都要高效。再次感谢你。试着在结尾没有PM。我的意思是,日期的格式真的很糟糕,你不应该同时有24小时格式和PM。这不是一个就是另一个。这绝对有助于我开始。谢谢你的提示!或者,如果对日期字符串执行new Date(),则会得到一个漂亮的js日期对象。对其调用getTime(),您将获得unix毫秒数。用它来直接比较整数,这真是太完美了。我没有意识到它能将所有文本转换成数字,比我能做的任何事情都要高效。再次感谢你。试着在结尾没有PM。我的意思是,日期的格式真的很糟糕,你不应该同时有24小时格式和PM。这不是一个就是另一个。这绝对有助于我开始。谢谢你的提示!或者,如果对日期字符串执行new Date(),则会得到一个漂亮的js日期对象。对其调用getTime(),您将获得unix毫秒数。用它来直接比较整数,这真是太完美了。我没有意识到它能将所有文本转换成数字,比我能做的任何事情都要高效。再次感谢你。试着在结尾没有PM。我的意思是,日期的格式真的很糟糕,你不应该同时有24小时格式和PM。这不是一个就是另一个。这绝对有助于我开始。谢谢你的提示!或者,如果对日期字符串执行new Date(),则会得到一个漂亮的js日期对象。对其调用getTime(),您将获得unix毫秒数。用它来直接比较整数,这真是太完美了。我没有意识到它能将所有文本转换成数字,比我能做的任何事情都要高效。再次感谢你。试着在结尾没有PM。我的意思是,日期的格式真的很糟糕,你不应该同时有24小时格式和PM。不是这个就是那个。