JavaScript - 按时间字符串排序

标签 javascript sorting time format comparator

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

我有这个函数,它需要 2 个 div 并获取一个段落,其中包含一个表示时间的字符串,格式如下:

2015 年 8 月 7 日,星期五,晚上 18:21

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

作为 2 个示例。我想创建一个排序比较器函数,如果一个数字大于另一个数字,它将返回正确的数字,但我不确定如何提取数字可以为 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;
}

谢谢!

最佳答案

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

var a = "Friday, 7 August 2015, 18:21 PM"
Date.parse(a.substring(0, a.length-3))

这样您就可以获得可用于比较的时间戳。

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

关于JavaScript - 按时间字符串排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31857561/

相关文章:

sorting - 使用哈希表在 Racket 中更快地排序

c++ - 排序算法的切换输入

java - 如何以这种格式转换秒数 "HH:mm:ss"

php - 在wordpress中的提交按钮后设置cookie

javascript - django复选框通过jquery全选

javascript - 当我使用 webapck5,yarn dev 遇到这个错误 : Library name must be a string or string array

sorting - 无痛脚本-将字符串转换为def

java - 如何调整公历日期,使其在使用 HOUR_OF_DAY 之前为 24、48 和 78 小时

java.time 发现我处于夏令时 "gap"

javascript - 我想使用 JavaScript 变量来存储图像位置