同时按日期和时间对数组进行排序?
Sorting array by date and time in same time?
我正在构建日程表应用程序,因此我需要同时按日期和时间对项目进行排序。就像您在示例中看到的那样,我只能过滤小时和分钟,这很有效,但我也需要过滤日期
我将日期存储在数据库中,例如 YYYY-MM-DD,并按小时和分钟存储时间,例如字符串:小时:“08”,分钟:“25”。
this.ord3ref.on("child_added", data => {
this.ord3.push({
key: data.key,
data: data.val()
});
this.ord3.sort(
(a, b) => a.data.hours- b.data.hours || a.data.minuts- b.data.minuts
);
});
就像你在图片上看到的那样,它按小时和分钟对数组进行排序,但它需要先按日期排序,而不是按小时和分钟排序...
如果数据包含 key/value 日期,那么您应该可以将排序函数替换为:
this.ord3.sort(
(a, b) => {
var dateA = new Date(a.data.date).valueOf();
var dateB = new Date(b.data.date).valueOf();
return a.data.hours - b.data.hours || a.data.minuts - b.data.minuts || dateA - dateB;
}
);
javascript Date
对象可以从格式为 YYYY-MM-DD
.
的日期字符串中创建
.valueOf()
方法 returns 距 UTC 时间的毫秒数 - 请参阅 MDN's 解释。
我正在构建日程表应用程序,因此我需要同时按日期和时间对项目进行排序。就像您在示例中看到的那样,我只能过滤小时和分钟,这很有效,但我也需要过滤日期
我将日期存储在数据库中,例如 YYYY-MM-DD,并按小时和分钟存储时间,例如字符串:小时:“08”,分钟:“25”。
this.ord3ref.on("child_added", data => {
this.ord3.push({
key: data.key,
data: data.val()
});
this.ord3.sort(
(a, b) => a.data.hours- b.data.hours || a.data.minuts- b.data.minuts
);
});
就像你在图片上看到的那样,它按小时和分钟对数组进行排序,但它需要先按日期排序,而不是按小时和分钟排序...
如果数据包含 key/value 日期,那么您应该可以将排序函数替换为:
this.ord3.sort(
(a, b) => {
var dateA = new Date(a.data.date).valueOf();
var dateB = new Date(b.data.date).valueOf();
return a.data.hours - b.data.hours || a.data.minuts - b.data.minuts || dateA - dateB;
}
);
javascript Date
对象可以从格式为 YYYY-MM-DD
.
.valueOf()
方法 returns 距 UTC 时间的毫秒数 - 请参阅 MDN's 解释。