javascript - JavaScript/jQuery:减去小时和分钟
问题描述
是)我有的:
三个时间输入,包括开始时间、结束时间和两者之间的差异。
<input type="time" name="starttime" id="starttime">
<input type="time" name="endtime" id="endtime">
<input type="time" name="duration" id="duration" disabled>
我需要的:
当开始或结束时间改变时,差异显示在第三个输入中。
例如 23:15 - 20:00 = 03:15。
我试过的:
到目前为止,我只能产生正确的小时数而不是分钟数。
<script>
jQuery(document).ready(function($) {
function calculateTime() {
// Get values.
var valuestart = $("#starttime").val();
var valuestop = $("#endtime").val();
// Create date format.
var timeStart = new Date("01/01/2007 " + valuestart);
var timeEnd = new Date("01/01/2007 " + valuestop);
// Subtract.
var difference = timeEnd - timeStart;
// Attempt 1: Only gets hours.
//var difference_as_hours = difference / 60 / 60 / 1000;
//alert("Hour Difference: " + difference_as_hours);
// Attempt 2: Nothing happens.
//var difference_as_hours_and_minutes = difference.getHours() + ":" + difference.getMinutes();
//alert("Hour And Minutes Difference: " + difference_as_hours_and_minutes);
// Attempt 3: Nothing happens.
//var difference_as_date = new Date("01/01/2007 " + difference);
//var difference_as_hours_and_minutes = difference_as_date.getHours() + ":" + difference_as_date.getMinutes();
//alert("Hour And Minutes Difference: " + difference_as_hours_minutes);
// Attempt 4: Nothing happens.
var formatted_time = time_format(difference);
alert(formatted_time);
}
$("#starttime, #endtime").change(calculateTime);
calculateTime();
});
function time_format(d) {
hours = format_two_digits(d.getHours());
minutes = format_two_digits(d.getMinutes());
seconds = format_two_digits(d.getSeconds());
return hours + ":" + minutes + ":" + seconds;
}
function format_two_digits(n) {
return n < 10 ? "0" + n : n;
}
</script>
我怎样才能产生小时和分钟?
解决方案
使用momentjs检查下面的工作演示:
let valuestart = moment.duration("20:00", "HH:mm");
let valuestop = moment.duration("23:15", "HH:mm");
let difference = valuestop.subtract(valuestart);
console.log(difference.hours() + ":" + difference.minutes())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>
推荐阅读
- python - SQLAlchemy 混合方法作为查询结果中的属性?
- python - 如何在 Kivy 中隐藏某些元素并提升其他元素
- r - 从粗略到更精细的分辨率网格插值
- node.js - Sequelize reload() 清除所有模型数据
- python - 如何在烧瓶管理面板列中运行 html 脚本?
- flutter - Flutter 持久化通知和服务
- c++ - 来自复杂主机数据的 Arrayfire 数组
- react-native - 升级到 0.61.5 后无法通过运行“react-native run-ios”在模拟器中安装应用程序
- c - 检查字符串是否与c中没有n个字符的另一个字符串相似
- laravel - 如何将日期格式 YY-MM 插入数据库?