javascript - 使用 JavaScript 以 24 小时格式获取两次之间的差异
问题描述
我有一个包含补习班开始和结束时间的下拉列表。时间格式为 24 小时。例如-
08:30 - 12:00
21:00 - 00:00
05:00 - 10:00
我需要以小时为单位获得开始时间和结束时间之间的差异。我使用了以下代码。
var diff = parseFloat(endTime) - parseFloat(startTime);
因此,如果我选择时间 21:00 - 00:00,则输出为 -21。但实际值应为 3 小时。此外,如果有人选择时间为 21:00 - 00:00,则差值应为 3 小时,而如果有人选择时间为 21:00 - 12:00,则差值应为 15 小时。我怎样才能做到这一点?
解决方案
第一个解决方案:将您的小时转换为DateTime格式并使用
function diff_hours(dt2, dt1)
{
var diff =(dt2.getTime() - dt1.getTime()) / 1000;
diff /= (60 * 60);
return Math.abs(Math.round(diff));
}
这将在几小时内为您提供差异。
第二种解决方案:如果您真的只想使用字符串,请自定义函数。
function diffTime(time1,time2) {
var hour1 = time1.split(':')[0];
var hour2 = time2.split(':')[0];
var min1 = time1.split(':')[1];
var min2 = time2.split(':')[1];
var diff_hour = hour2 - hour1;
var diff_min = min2 - min1;
if (diff_hour<0) {
diff_hour+= 24;
}
if (diff_min<0) {
diff_min+=60;
diff_hour--;
} else if(diff_min>=60){
diff_min-=60;
diff_hour++;
}
return [diff_hour,diff_min]
}
推荐阅读
- mvvm - 如何通过 ViewModel 实现的 onclick Binding Adapter 获取 Position & View 信息?
- http - 建议保留 nonce 的时间?
- deep-learning - 在 Stacked Denoising Autoencoder 中在哪里添加噪声?
- rust - 结构使用关联函数重新分配多个字段的干净方式?
- python - 基于字符串计算列值
- c# - 如何提取SQL列和表信息
- wordpress - 在 Bluehost 上为主机发送的电子邮件和 gsuite 设置 spf 和 DKIM
- apache-kafka - 卡夫卡消费者长时间闲置后不消费
- python - 如何在 Python 中将默认的 Class 类型参数设置为 null?
- python - 如何忽略以前的输入?