倒计时问题出现00的问题

下面是一段倒计时,但是没有处理,出现00的情况,想了下找不到解决这个问题的切入点,所以像个为请教下,怎么处理这个。

出现的00情况示例:
比如当倒计时到了09:59:01,那么到下一秒的时候原本应该是09:58:59,可这却是09:59:00

setTimeFunc = (time) => {
    const aimTime = new Date(('2018-5-24 09:30:00').replace(/-/g, '/')).getTime();
    const currentTime = new Date().getTime();
    // const days = null;
    // const hours = null;
    // const seconds = null;
    const diffTime = aimTime - currentTime;

    const years = new Date(aimTime).getFullYear() - new Date().getFullYear();
    const month = new Date(aimTime).getMonth() - new Date().getMonth();

    if (years === 0) {
      if (month === 0) {
        const days = Math.floor(diffTime / (1000 * 60 * 60 * 24));
        const hours = Math.floor((diffTime - (days * 1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        const minutes = Math.floor((diffTime - (days * 1000 * 60 * 60 * 24) - (hours * 1000 * 60 * 60)) / (1000 * 60));
        const seconds = Math.floor((diffTime - (days * 1000 * 60 * 60 * 24) - (hours * 1000 * 60 * 60) - (minutes * 1000 * 60)) / 1000);
        console.log(hours);
        this.setState({
          days: days > 9 ? days : '0' + days,
          hours: hours > 9 ? hours : '0' + hours,
          minutes: (minutes) > 9 ? minutes : '0' + minutes,
          seconds: seconds> 9 ? seconds : '0' + seconds
        });
      }
    }
阅读 2.4k
3 个回答

你是不要03 02 01 00只要3 2 1 0?还是03 02 01 0?

图片描述

能描述清楚一些么,00是指什么?

本来就应该有“00”,“09:59:01”的下一个时间本来就是“09:59:00”而不是“09:58:59”,想要去掉“00”偷偷-1s的话你setState之前判断一下当前是不是“00”就好了,是“00”的话直接-1s跳到下一秒。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题