现有一个开始时间的字符串数组
arr = ["2022/3/21 18:00", "2022/3/21 18:50", "2022/3/21 19:30"];
如何实现倒计时功能呢?
<li v-for="item in arr">{{”距离开始还有“+countdown}}</li>
let arr = ["2022/3/21 18:00", "2022/3/21 18:50", "2022/3/21 19:30"];
let newArr = [];
setInterval(() => {
newArr = arr.map(item => {
return (new Date(item).getTime() - new Date().getTime()) / 1000
})
console.log(newArr)
}, 1000)
最终得到的是距离开始时间的秒数,如果你想要时分秒格式的话,可以在做一下格式化
楼上的兄弟已经给你解决了倒计时的问题,我再延伸一下,可能你拿到了多组开始时间,但你同一时间只想展示离当前时间最近的时间的倒计时
let arr = ["2022/3/21 18:00", "2022/3/21 18:50", "2022/3/21 19:30"];
let newArr = [];
setInterval(() => {
newArr = arr.map(item => {
return (new Date(item).getTime() - new Date().getTime()) / 1000
})
//过滤掉已经结束了的时间
newArr = newArr.filter(item=> item>0 )
//排序
newArr.sort((a, b) => a - b)
console.log(newArr[0])
}, 1000)