【发布时间】:2013-11-14 00:25:14
【问题描述】:
我在 JavaScript 中生成的一些代码存在问题。我想计算 24 小时制两次之间的差异。数据来自两个输入时间字段:
<input type="time" id="start" />
<input type="time" id="end" />
因此,时间以字符串 00:00 的形式出现,这对数字计算没有帮助。
我的计算方法是从结尾减去开头。如果结束时间更长,这非常有效,但是如果结束时间超过 11:00 (00:00),我最终会得到一个负数。如果结尾低于开头,我尝试将 24 添加到结果中,但我仍然得到一个负数。这似乎是一个愚蠢的问题,但我从来没有那么擅长数学。
var numHours;
if(time_end < time_start){
numHours = parseInt(t_e.substring(0,2)) - parseInt(t_s.substring(0,2)) + 24;
}else{
numHours = parseInt(t_e.substring(0,2)) - parseInt(t_s.substring(0,2));
}
可能(肯定)有更好的方法来做到这一点,但我怎样才能让它发挥作用。我也可以计算分钟以获得更准确的时差。
【问题讨论】:
-
对此的支持看起来不太好:caniuse.com/input-datetime
-
只是一个想法,但如果数字是负数,我可以将 - 号子串起来。那会一样吗?
-
第 1 步将所有内容转换为分钟。步骤#2 做数学运算(应该如何处理不同的重叠?)。步骤 #3 根据需要转换回显示。
-
哇@Dude,我不妨使用一个普通的输入框,它会更好地跨平台工作。我还使用 jquery-ui 创建了一个日期输入。它适用于我的平板电脑,我也应该更改它吗?
-
谷歌搜索后,我找到了this
标签: javascript math time numbers var