数组变量中期望的标识符



出于兼容性原因,我仍然需要我的函数在internet explorer中工作。其他浏览器支持我的数组变量:var [sHour, sMinute, sSecond],但internet explorer不支持。以下是我的全部功能。

function time_interval(start, end) {
var [sHour, sMinute, sSecond] = start.split(":");
var [eHour, eMinute, eSecond] = end.split(":");
var s = new Date();
s.setHours(sHour, sMinute, sSecond);
var e = new Date();
e.setHours(eHour, eMinute, eSecond);
var a;
if (s.getTime() < e.getTime()) {
a = e.getTime() - s.getTime();
} else {
e.setDate(e.getDate() + 1);
a = e.getTime() - s.getTime();
}
a = a / 1000;
var h = Math.floor(a / 3600);
var m = Math.floor((a % 3600) / 60);
var s = a % 60;
return (
(h ? h + ' hour ' : '') +
(m ? m + ' minute ' : '') +
(s ? s + ' second ' : '')
).trim();
}
const example = time_interval("10:00:00", "10:30:00");
console.log(example);

数组var取的值的一个例子是10:30:00。这就是为什么我添加了.split。如何分离数组,使其兼容并删除预期标识符错误?我试着在单个变量中分离它,但由于分裂,这不起作用。

var sHour
var sMinute
var sSecond

如有任何帮助,不胜感激。

这不是理想的解决方案,但您可以这样重构代码:

var splitStart = start.split(":");
var sHour = splitStart[0];
var sMinute = splitStart[1];
var sSecond = splitStart[2];

还可以考虑使用函数和对象:

function convertTimeArrayToObject(arr) {
return {
hour: arr[0],
minute: arr[1],
second: arr[2]
}
}
var startObject = convertTimeArrayToObject(start.split(":"));
console.log(startObject.hour) // Will print the hour

最新更新