//物流超时倒计时 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> ); } }
倒计时组件
最新推荐文章于 2023-09-18 10:54:39 发布