如何计算Javascript中字符串之间的时差?
How do I calculate the time difference between strings in Javascript
是我有两个小时的字符串格式,我需要计算javascript的差异,一个例子:
a = "10:22:57"
b = "10:30:00"
虽然使用Date
或库非常好(而且可能更容易),但这里有一个如何使用一点数学"手动"完成此操作的示例。思路如下:
- 解析字符串,提取小时、分、秒。
- 计算总秒数
- 减去两个数字
- 格式与
hh:mm:ss
秒。
的例子:
function toSeconds(time_str) {
// Extract hours, minutes and seconds
var parts = time_str.split(':');
// compute and return total seconds
return parts[0] * 3600 + // an hour has 3600 seconds
parts[1] * 60 + // a minute has 60 seconds
+parts[2]; // seconds
}
var difference = Math.abs(toSeconds(a) - toSeconds(b));
// compute hours, minutes and seconds
var result = [
// an hour has 3600 seconds so we have to compute how often 3600 fits
// into the total number of seconds
Math.floor(difference / 3600), // HOURS
// similar for minutes, but we have to "remove" the hours first;
// this is easy with the modulus operator
Math.floor((difference % 3600) / 60), // MINUTES
// the remainder is the number of seconds
difference % 60 // SECONDS
];
// formatting (0 padding and concatenation)
result = result.map(function(v) {
return v < 10 ? '0' + v : v;
}).join(':');
制作两个Date
对象。然后你可以比较。
从您希望比较的两个日期中获取值,并进行减法。像这样(假设foo
和bar
是日期):
var totalMilliseconds = foo - bar;
将给出两者之间的毫秒数。一些数学运算会把它转换成天、小时、分钟、秒或任何你想用的单位。例如:
var seconds = totalMilliseconds / 1000;
var hours = totalMilliseconds / (1000 * 3600);
至于从string
中获得Date
,您必须查看构造函数(检查第一个链接),并以最适合您的方式使用它。编码快乐!
如果你的时间总是少于12小时,这是一个非常简单的方法:
a = "10:22:57";
b = "10:30:00";
p = "1/1/1970 ";
difference = new Date(new Date(p+b) - new Date(p+a)).toUTCString().split(" ")[4];
alert( difference ); // shows: 00:07:03
如果你需要超过12小时的格式,渲染会更复杂,日期之间的MS值是正确的使用这个数学…
你必须使用Date对象:http://www.w3schools.com/jsref/jsref_obj_date.asp
然后比较:如何在javascript中计算日期差异
相关文章:
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- jQuery在两个字符串标识符之间选择HTML
- 使用Javascript获取两个字符串之间的字符串数组
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- 如何使用JavaScript Regex替换字符串中双引号之间的文本
- 如何在jQuery中搜索两个字符之间的字符串
- 我可以在两个javascript文件之间传递一个字符串吗?
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- 如何通过jQuery Ajax在HTML和PHP之间来回传输json字符串
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串
- 删除两个字符串正则表达式之间的所有内容
- javascript:获取特定字符串之间的字符串
- 在第二次出现时提取方括号之间的字符串
- 如何在JavaScript中返回两个日期(当前日期和输入日期)之间的字符串差异
- Javascript Regex匹配两个字符串之间的子字符串,但子字符串可以包含DOT(.)
- 在jQuery或JavaScript中获取两个字符串之间的文本
- JavaScript函数,用于在全宽度和半宽度形式之间转换UTF8字符串
- Regex表达式,用于替换两个字符(包括字符)之间的字符串
- 如何删除两个单词之间的字符串
- 获取数字之间字符串的内容