Javascript 如何按季度划分时段

Javascript 如何按季度划分时段,javascript,angular,typescript,Javascript,Angular,Typescript,我想根据两个时间来计算四分之一的时间 例如,我有两个时间字符串 startTime = 5445458588989 //let suppose 5:10 AM endTime = 585556513555 //let suppose 8:40 AM 例如,可能是一种方法 //typescript public getTimeslots(start: number, end: number) number[] { //Code goes here } 所以我想得到这两次之间的四

我想根据两个时间来计算四分之一的时间 例如,我有两个时间字符串

startTime = 5445458588989  //let suppose 5:10 AM
endTime = 585556513555     //let suppose 8:40 AM
例如,可能是一种方法

//typescript
public getTimeslots(start: number, end: number) number[] {
  //Code goes here
}

所以我想得到这两次之间的四分之一。 这可能是一个时间字符串数组

[
 445452115,    //5:15 AM
 985455514,    //5:30 AM
 542215558,    //5:45 AM
 321566899,    //6:00 AM
 987585159,    //6:15 AM
 ...
 982148552,    //8:30 AM
]
注:此处的字符串可能无效,仅供演示

const start=新日期(开始时间);
const end=新日期(endTime);
//将开始日期设置为最接近的15分钟间隔
让closestInterval=Math.ceil(start.getMinutes()/15)*15;
start.setMinutes(closestInterval);
//数组来存储间隔
常数间隔=[];
//创建一个循环,以遍历所有15分钟的间隔。
while(开始<结束){
//将当前日期的副本推送到列表中
push(Object.assign({},start));
//增加15分钟。
start.setMinutes(start.getMinutes()+15);
}

在此之后,您应该在开始和结束时间之间的15分钟间隔内拥有一个日期对象数组。

我认为您应该展示您尝试过的内容,但我发现它很有趣。你能试试这个吗

getTimeslots(start: number, end: number) number[] {
  startMins = (new Date(start)).getMinutes();
  endMins = (new Date(end)).getMinutes();

  startGapToQuarter = (startMins % 15) * 60000;

  const quarters = [];
  for (let i = start + startGapToQuarter; i < endMins; i += 900000) {
    // to return dates change for this:
    // quarters.push(new Date(i));
    quarters.push(i);
  }

  return quarters;
}
getTimeslots(开始:编号,结束:编号)编号[]{
startMins=(新日期(开始)).getMinutes();
endMins=(新日期(结束)).getMinutes();
StartGateptoQuarter=(startMins%15)*60000;
常数季度=[];
对于(让i=开始+开始四分之一;i<结束分钟;i+=900000){
//要返回此更改的日期,请执行以下操作:
//季度推送(新日期(i));
四分之一。推(i);
}
返回宿舍;
}

到目前为止您尝试了什么?
startGapToQuarter=startMins%15这是一个介于0-14之间的数字,不是最近的15分钟间隔。检查我下面的答案,你必须除法、取整和乘法。我知道。。。。这是差距。。如果你把它加到开始,你会得到它之后的第一个季度。。对吗?啊,我知道你做了什么,非常聪明的银行。。。但你是对的,我不得不把它调回毫秒。。。所以我乘以900000