问题是,当我使用 localdate
(这是我的开始时间)变量获取当前时间时,我也获取结束时间,因此我打印了这些值与 15 之间的时间增加时间的分钟数。
示例:当前时间为 13:04,因此后续时间段将为 13:19、13:34,依此类推,直到结束时间。
function ShowLocalDate() {
var time1 = new Date();
var time2 = new Date();
var dNow = new Date();
var localdate = dNow.getHours() + ':' + dNow.getMinutes();
//meeting length
var meetingLength = parseInt('15');
//start time
var startTime = localdate
var startHour = startTime.split(':')[0];
var startMin = startTime.split(':')[1].replace(/AM|PM/gi, '');
//end time
var endTime = '11:00 PM';
var endHour = endTime.split(':')[0];
var endMin = endTime.split(':')[1].replace(/AM|PM/gi, '');
//Check if start time is PM and adjust hours to military
if (startTime.indexOf('PM') > -1) {
if (startHour != 12) {
startHour = parseInt(startHour) + 12;
} else {
startHour = parseInt(startHour);
}
console.log(startHour);
}
//Check if end time is PM and adjust hours to military
if (endTime.indexOf('PM') > -1) {
endHour = parseInt(endHour) + 12;
console.log(endHour);
}
//Date API start time
time1.setHours(parseInt(startHour));
time1.setMinutes(parseInt(startMin));
//Date API end time
time2.setHours(parseInt(endHour));
time2.setMinutes(parseInt(endMin));
//Adding meeting length to start time, this value will be use for end time
time1.setMinutes(time1.getMinutes() + meetingLength);
while (time1 < time2) {
$('#etime').append('<option value="' + time1 + '">' + time1 + '</option>');
time1.setMinutes(time1.getMinutes() + meetingLength);
}
}
ShowLocalDate();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tr>
<td>
<select name="etime" id="etime">
<option value="">--Select end time--</option>
</select>
</td>
</tr>
</tr>
JSFiddle:https://jsfiddle.net/6n458ze9/18/
但我想要这样,假设开始时间意味着当前时间是 13:04,那么下一次将是 13:20 而不是 13:19,再一次是 13:35 而不是 13:34,直到结束时间。
结束时间为晚上 11:00(这是固定的)。
提前谢谢您。
最佳答案
如果您想将时间四舍五入到 05、10、15 等分钟,您可以轻松地在原始时间上再添加几分钟,直到分钟数除以 5 等于 0,如下所示
//Adding meeting length to start time, this value will be use for end time
var endTime = time2.getMinutes() + meetingLength;
while (endTime % 5 != 0)
endTime++
time1.setMinutes(endTime);
关于javascript - 在 JavaScript 中打印时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094257/