根据javascript中的时间戳进行排序
Sorting according to timestamp in javascript
我的javascript中有两个变量。一个消息函数:var message
时间戳函数:var date
(类型为timestamp)。。
现在我有了一个数组,它根据时间戳存储消息。类似的东西
var input = []; //dynamic array to store both message and date
var date = new Date(update.data.history[i].timestamp * 1000); //Getting from Json object
var date_input = date.toLocaleTimeString();
var message = update.data.history[i].message;
for (i to length)
{
input.push({ key: date_input, value: message }); //Key refers to date, and value to message
}
input.sort(sort_by(key,true,parseInt));
我的功能按排序(_B)
var sort_by = function(field, reverse, primer){
var key = function (x) {return primer ? primer(x[field]) : x[field]};
return function (a,b) {
var A = key(a), B = key(b);
return (A < B ? -1 : (A > B ? 1 : 0)) * [1, -1][+!!reverse];
}
}
现在,我尝试使用firebug进行调试,发现我的排序功能不起作用。我使用时间戳作为密钥,但仍然没有运气。有没有办法我可以根据时间戳对它进行排序,然后显示它。我在SO上尝试了其他排序解决方案,但我想当有像时间戳这样的数据类型时,还有另一种排序方法
在对象文字中,您不必引用关键字:
input.push({ key: date_input, value: message });
然而,您的函数需要三个参数,这些参数不是用类似对象的表示法给出的,因此key
的含义是未知的,并将导致ReferenceError:
input.sort(sort_by(key,true,parseInt));^ReferenceError:未定义键
使用字符串作为参数,它应该可以工作:
input.sort(sort_by("key",true,parseInt));
排序功能运行良好。当我用firebug调试它时,我在控制台上看到,即使日期输入是"上午6-29-07",它也只取6作为"键",因此当天的每个条目都被分配了相同的键。因此,排序无法提供所需的输出。因此,我避免了第二行中的new date()函数,直接将时间戳作为关键字,进行相应排序,然后将其转换为日期格式。愚蠢的错误,但花了一些时间。
相关文章:
- 如何每10.6秒从时间戳增加+1
- 使用AngularJS从时间戳中获取工作日
- 将时间戳转换为java中的ISO860,
- Javascript Unix时间戳转换
- JavaScript JSON关联对象键和值都作为日期时间戳
- 时间戳与mongoskin如何
- 用时间戳获取两个不同日期之间的时间差
- JavaScript到PHP的时间戳失败,增加了大约一个半月的时间
- 转换unix时间戳转换
- 带有unix时间戳的d3.js平分线
- 根据javascript中的时间戳进行排序
- 如何对Javascript Unix时间戳数组进行排序
- 我需要使用mongodb本机驱动程序来查找按时间戳字段排序的不同id
- NodeJS时间戳:比较时间并显示记录排序升序
- 按时间戳对对象数组进行排序
- 在jquery中按时间戳对数组进行排序
- 基于时间戳对JSON对象进行排序
- 在Cloudkit.JS中按时间戳对记录进行排序
- 按unix时间戳对无法解析的表排序器日期列进行排序
- 如何在javascript中对数据时间戳进行排序