js两个时间格式的string相减
时间: 2024-10-11 07:05:58 浏览: 25
在JavaScript中,如果你想计算两个时间字符串之间的差值,通常需要先将它们转换成Date对象,然后进行减法操作。这里是一个基本的例子:
```javascript
function stringToDate(str) {
var date = new Date();
if (str.match(/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.(\d+))?)Z/gi)) { // ISO 8601 format
date.setUTCFullYear parseInt(str.substr(0, 4), 10);
date.setUTCMonth parseInt(str.substr(5, 2), 10) - 1; // months start from 0 in JavaScript
date.setUTCDate parseInt(str.substr(8, 2), 10);
date.setUTCHours parseInt(str.substr(11, 2), 10);
date.setUTCMinutes parseInt(str.substr(14, 2), 10);
date.setUTCSeconds parseInt(str.substr(17, 2), 10);
if (str.match(/\.\d+/)) {
date.setUTCMilliseconds(parseInt(str.match(/\.\d+/)[0].substr(1), 10));
}
} else if (str.match(/(\d{2}):?(\d{2})(?:[:\.]\d{1,3})*$/gi)) { // hours:minutes format
date.setUTCHours(parseInt(str.split(':')[0], 10), parseInt(str.split(':')[1] || '0', 10));
}
return date;
}
function subtractTimeStrings(str1, str2) {
var date1 = stringToDate(str1);
var date2 = stringToDate(str2);
return Math.abs(date1.getTime() - date2.getTime());
}
// 使用示例
var diffInMilliseconds = subtractTimeStrings('2023-09-01T12:00:00Z', '2023-09-01T10:30:00Z');
console.log(diffInMilliseconds); // 输出两个时间之间的毫秒差
```
这个函数首先定义了一个`stringToDate`函数用于解析输入的时间字符串并创建一个对应的Date对象。然后`subtractTimeStrings`函数计算这两个日期对象的时间差。注意,这种方法假设输入的时间都是在同一时区,并且只处理了最常见的ISO 8601格式和简单的小时:分钟格式。
阅读全文