繁体   English   中英

比较 JavaScript 对象数组中的 localeTimeString

[英]Compare localeTimeString in array of objects in JavaScript

我正在检查当前时间是否介于时间数组之间。 预期的结果是返回更接近当前时间的第一次。

 const dateTimes = [{ value: '3:00:00 PM' }, { value: '4:00:00 PM' }, { value: '5:00:00 PM' } ] const currentTime = new Date().toLocaleTimeString(); const result = dateTimes.find(({ value }) => currentTime > value) console.log(result);

这种方法采用当前时间和对象时间之间的绝对差异。

 const dateTimes = [ {value: '3:00:00 PM'}, {value: '4:00:00 PM'}, {value: '5:00:00 PM'} ]; let currentTime = new Date().toLocaleTimeString(); let currentHour = parseInt(currentTime.split(":")[0]); let currentMinutes = parseInt(currentTime.split(":")[1]); let currentSeconds = parseInt(currentTime.split(":")[2]); let dif = -1, closest = ""; dateTimes.forEach(function (e){ let hour = parseInt(e.value.split(":")[0]); let minutes = parseInt(e.value.split(":")[1]); let seconds = parseInt(e.value.split(":")[2].split(" ")[0]); let stamp = e.value.split(":")[2].split(" ")[1]; hour = stamp == "PM" ? hour + 12 : hour; let thisDif = Math.abs(hour * 3600 + minutes * 60 + seconds - (currentHour * 3600 + currentMinutes * 60 + currentSeconds)); if (dif < 0 || thisDif < dif) { dif = thisDif; closest = e.value; } }); console.log(closest);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM