如何让Flipdown仅显示当前时间而非倒计时,可设置从now()正计时24:00重置吗
Flipdown 显示当前时间/每日重置正计时实现方案
不需要自行管理底层rotors,用组件官方暴露的API加少量简单逻辑即可实现需求,无需修改组件源码,以下是可直接运行的实现方案:
仅展示当前实时时间
核心逻辑是利用Flipdown的倒计时差值反推当前时间,每秒更新一次差值即可:
- 初始化时关闭不需要的天级单位,将表头改为时分秒
- 每秒计算当日0点到当前时间的总秒数,将倒计时差值设为
86400 - 当日已过秒数,此时组件展示的数值刚好对应当前的时分秒
示例代码:
// 初始化Flipdown,第一个参数可任意传,后续会通过update方法覆盖差值 const flipdown = new FlipDown(Date.now() / 1000 + 86400, { theme: 'light', // 可替换为dark等其他主题 headings: ['天', '时', '分', '秒'] }).start(); function updateTimeDisplay() { const now = new Date(); // 计算今日0点到现在的总秒数 const passedSeconds = now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds(); // 更新倒计时差值,让组件显示当前时分秒 flipdown.update(86400 - passedSeconds); // 隐藏不需要的天级单位块 document.querySelector('.flipdown__rotors .flipdown__rotor-group:first-child').style.display = 'none'; } // 首次执行+每秒刷新 updateTimeDisplay(); setInterval(updateTimeDisplay, 1000);
每日24:00自动重置的正计时
上述代码天然支持该需求:当日23:59:59之后,passedSeconds会自动归零,组件展示数值会自动重置为00:00:00,从0开始重新计时,无需额外添加重置逻辑。
内容的提问来源于stack exchange,提问作者Ishvara
相关产品推荐
相关产品推荐

