我想显示为输出:
User was online for 12 minutes
我正在通过设置时间间隔来计算用户在页面上花费的时间。
componentDidMount() {
this.interval = setInterval(() => this.setState({ time: Date.now() }), 60000);
}
render () {
<div> User online for {this.state.time} minutes</div>
}
但这给了我
O / P:
User online for 1532887387453 minutes
通过这种转换,可以将纪元转换为人类可读的分钟。
这可能吗?
答案 0 :(得分:2)
这次以毫秒为单位。因此,要获取分钟数,应将其除以1000(以获取秒),然后除以60(以获取分钟数),或者简单地将其除以60000。因此,使用以下代码:
constructor(props) {
super(props);
this.state = { time: 0 };
}
componentDidMount() {
this.interval = setInterval(() => this.setState({ time: (Date.now() / 60000) - this.state.time }), 60000);
}
render() {
return (<div>User online for {this.state.time} minutes</div>);
}
答案 1 :(得分:0)
如果您使用setInterval来更新花费的时间,为什么不能在每分钟之后简单地增加计数器,
constructor() {
super();
this.state = {
timeSpent: 0, // if you want to show 1 as the minimum, set as 1 here
}
}
componentDidMount() {
this.interval = setInterval(() => this.setState({ timeSpent: ++this.state.timeSpent }), 60000);
}
render () {
<div> User online for {this.state.timeSpent} minutes</div>
}
P.S:但是,将这种时间计算逻辑保留在组件内部确实是一种糟糕的方法。