javascript - Javascript以vali增量循环日期/时间
问题描述
我试图以定义的增量从开始时间到一天结束建立一个表。
例如:如果用户从上午 8:10 开始选择 15 分钟增量,则时间为 8:10,8:25,8:40,8:55,9:10...
我当前的代码不正确,我们已更改为下一小时,然后再次开始偏移,例如我得到:815,830,845,905,935,1025,1125,1225,1325...
这是一个 JSFiddle https://jsfiddle.net/inboxdesign/c8f2dhng/13/
这是我到目前为止的代码;
// from select:
let $first_hour = 8;
let $first_minute = 10;
let day_count = 1; // don't worry about this;
let duration = 15; // increment
var offset = 0;
var current_time = parseInt($first_hour + $first_minute);
for (var i = 0; i < 120; i++) {
if (current_time < 2400) {
var time_string = ('' + current_time);
var time_minutes = parseInt(time_string.substring(time_string.length - 2));
if (time_minutes < 60) {
// offset = 0;
times += '<tr>';
for (var d = 1; d <= day_count; d++) {
times += '<td>d: ' + d + ' : time: ' + current_time + ' ->' + time_string.substring(time_string.length - 2) + ' offset: ' + offset +'</td>';
}
times += '</tr>';
} else {
offset = (time_minutes - 60);
// times += '<tr>';
// times += '<td>o:' + offset + ' tm: ' + time_minutes + '</td>';
// time_minutes = offset;
// times += '</td>';
}
}
console.log('current_time: ' + current_time);
current_time = parseInt(current_time + duration + offset);
解决方案
在这一行中,您的 else 偏移量必须重置为 0
for (var d = 1; d <= SP.new_conference.day_count; d++) {
times += '<td>d: ' + d + ' : time: ' + current_time + ' ->' + time_minutes + ' offset: ' + offset +'</td>';
}
// times += '</tr>';
} else {
offset = 0;
然后你当前的时间和偏移量应该是这样的
current_time = parseInt(current_time + SP.new_conference.duration );
offset+=SP.new_conference.duration
如果你想看看,我已经在jsfiddle中解决了这个问题
推荐阅读
- xml - 如何使用 XSL 获取特定元素的值
- flutter - 我怎么知道用户是在删除还是在写
- reactjs - 处理 React 重新渲染
- android - 有没有办法根据日/夜模式刷新自定义通知?
- docker - npm + wsl + docker 和卷挂载有什么解决方案?
- applescript-objc - 带有 Applescript 的进度条
- api - 我应该为不同的具体类设置不同的 API 方法吗?
- sql - 如何更新一个主键是另一个表的主键的表?
- c++ - RSA_sign 和 EVP_DigestSignX() 之间的区别
- reactjs - 警告:Material-UI:为 Tabs 组件提供的值“3”无效。所有 Tabs 子项都没有此值