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