倒计时组件

//物流超时倒计时
export class LogicBlock extends Component {
    constructor(props) {
        super(props);
        let retime;
        let {timeout,now} = this.props;
        //retime = parseInt(new Date(timeout.replace(/-/g, '/')).getTime() / 1000) - (parseInt(new Date().getTime() / 1000));
        retime = timeout - now;
        if (retime > 0) {
            this.state = {
                retime: retime
            }
        } else {
            this.state = {
                retime: 0
            }
        }

    }


    componentDidMount() {
        let {retime} = this.state;
        retime > 0 && this.intervalreTime();
    }

    componentWillUnmount() {
        window.clearInterval(this.retimer);
    }

    intervalreTime = () => {
        this.retimer = setInterval(() => {
            let t = --this.state.retime;
            if (t < 0) {
                window.clearInterval(this.retimer);
                this.setState({retime: 0})
            } else {
                this.state.retime = t;
                this.setState(this.state)
            }
        }, 1000)
    };

    formatTime(time) {
        return dateUtil.formatNum(parseInt(time))
    }
    dealTime = (retime) => {
        let html='';
        let day,hours,min,sec;
        day=this.formatTime(retime / 3600 / 24);
        hours=this.formatTime(retime / 3600 % 24);
        min=this.formatTime(retime % 3600/60);
        sec=this.formatTime(retime %60);
        html=day!=0? `${day}天${hours}时`: (hours!=0? `${hours}时${min}分`:`${min}分${sec}秒`);
        return html;
    };
    render() {
        let {retime} = this.state;
        return (
            <span className="block-time">
                <span>还剩{this.dealTime(retime)}</span>
            </span>
        );

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值