js 使用ES5 用string 类型接收2024-09-11 11:24:12,计算前12小时和后12小时 计算时间用string类型YYYY-MM-DD HH24:MI:SS 的格式表示出来
时间: 2024-09-12 07:14:42 浏览: 72
在JavaScript中,我们可以使用`Date`对象来解析字符串形式的时间,并对其进行运算。以下是使用ES5标准实现的一个示例代码,它将接受格式为`YYYY-MM-DD HH:MM:SS`的时间字符串,并计算前12小时与后12小时的时间,结果同样以字符串形式返回。
```javascript
// 定义一个函数来处理时间计算
function calculateTimeOffset(dateStr, offsetHours) {
// 使用Date.parse来解析时间字符串,生成一个时间戳
var timestamp = Date.parse(dateStr.replace(/ /g, 'T') + 'Z');
// 创建一个新的Date对象
var dateObj = new Date(timestamp);
// 计算时间偏移量,单位为毫秒
var offset = offsetHours * 60 * 60 * 1000;
// 调整时间
dateObj.setTime(dateObj.getTime() + offset);
// 将Date对象格式化为YYYY-MM-DD HH24:MI:SS形式的字符串
var year = dateObj.getFullYear();
var month = (dateObj.getMonth() + 1).toString().padStart(2, '0');
var day = dateObj.getDate().toString().padStart(2, '0');
var hours = dateObj.getHours().toString().padStart(2, '0');
var minutes = dateObj.getMinutes().toString().padStart(2, '0');
var seconds = dateObj.getSeconds().toString().padStart(2, '0');
// 组装最终的字符串返回
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
}
// 给定时间字符串
var originalStr = '2024-09-11 11:24:12';
// 计算前12小时和后12小时的时间
var earlierStr = calculateTimeOffset(originalStr, -12);
var laterStr = calculateTimeOffset(originalStr, 12);
console.log('原时间:', originalStr);
console.log('前12小时:', earlierStr);
console.log('后12小时:', laterStr);
```
在这段代码中,我们首先定义了一个`calculateTimeOffset`函数,它接受原始时间字符串和偏移的小时数作为参数。函数内部,我们先将输入的时间字符串格式转换为ISO标准的时间格式(即`YYYY-MM-DDTHH:MM:SSZ`),然后用`Date.parse`方法解析成时间戳。接着,我们创建一个`Date`对象,并通过`setTime`方法调整时间。最后,我们将时间格式化为指定的字符串格式,并返回。
请确保在运行上述代码前,你的环境支持JavaScript ES5标准。
阅读全文