Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Javascript时间戳数组按小时、天分成更小的数组_Javascript_Arrays_Timestamp - Fatal编程技术网

将Javascript时间戳数组按小时、天分成更小的数组

将Javascript时间戳数组按小时、天分成更小的数组,javascript,arrays,timestamp,Javascript,Arrays,Timestamp,我有一个对象数组,每个对象都包含一个ID和时间戳,如下所示: var data = [ { id: 1, date: '2015-01-01T00:00:00Z' }, { id: 2, date: '2015-01-03T03:00:00Z' }, { id: 3, date: '2015-01-03T09:00:00Z' }, { id: 4, date: '2015-01-05T00:00:00Z' }, ] 我想把这些物体的数量按小时和天

我有一个对象数组,每个对象都包含一个ID和时间戳,如下所示:

var data = [
{
   id: 1,
   date: '2015-01-01T00:00:00Z'
},
{
   id: 2,
   date: '2015-01-03T03:00:00Z'
},
{
   id: 3,
   date: '2015-01-03T09:00:00Z'
},
{
   id: 4,
   date: '2015-01-05T00:00:00Z'
},
]
我想把这些物体的数量按小时和天数制成图表。所以我需要知道有多少人的时间戳在00:00和01:00之间,01:00和02:00之间,等等。同样,我需要知道有多少人的时间戳在2015-01-03和2015-01-04之间,等等

我的第一反应是循环一天中的小时/一周中的几天,在这段时间内,再次循环表中的行,然后

if (val.date() >> hourIterator && val.date() << (hourIterator + 1)) {
    new_array.push(val)
}

如果(val.date()>>hourIterator&&val.date()JavaScript日期实例有一个函数
.getTime()
来获取毫秒数,通常最好将日期作为日期对象处理,但在某些情况下,可以将其作为字符串处理

以下统计范围内的特定零件(包括限值),但仅考虑一个因素:

var data = [
            {id: 1, date: '2015-01-01T00:00:00Z'},
            {id: 2, date: '2015-01-03T03:00:00Z'},
            {id: 3, date: '2015-01-03T09:00:00Z'},
            {id: 4, date: '2015-01-05T00:00:00Z'},
           ];

/*  @param {string} part        - name of part to compare, e.g. 'day', 'hour'
**  @param {string/number} low  - value for start of range
**  @param {string/number} high - value for end of range
**  @returns {number}           - count of values in range, inclusive
*/
function countInRange(part, low, high) {
  var partNames = {year:0, month:1, day:2, hour:3, min:4, sec:5};
  var n = partNames[part];
  var count = 0;
  data.forEach(function(obj) {
    var b = obj.date.split(/\D/);
    if (b[n] >= low && b[n] <= high) {
      count++;
    }
  });
  return count;
}

console.log(countInRange('day',1,2));   // 1
console.log(countInRange('day',1,3));   // 3
console.log(countInRange('day',4,6));   // 1
console.log(countInRange('min',0,10));  // 4
var数据=[
{id:1,日期:'2015-01-01T00:00:00Z'},
{id:2,日期:'2015-01-03T03:00:00Z'},
{id:3,日期:'2015-01-03T09:00:00Z'},
{id:4,日期:'2015-01-05T00:00:00Z'},
];
/*@param{string}part-要比较的部分的名称,例如“day”、“hour”
**@param{string/number}low-范围开始的值
**@param{string/number}高-范围结束时的值
**@返回{number}-范围内的值计数,包括在内
*/
功能计数范围(部分、低、高){
var partNames={年:0,月:1,日:2,小时:3,分钟:4,秒:5};
var n=零件名称[零件];
var计数=0;
data.forEach(功能(obj){
var b=对象日期分割(/\D/);

如果(b[n]>=low&&b[n]您在这段代码中有访问lodash/下划线的权限吗?您希望在任何日期或特定日期的00:00到01:00之间访问它们吗?通常,最好将日期作为日期处理,而不是字符串。